sound: Improve hw.snd.compat_linux_mmap #29
Closed
christos
wants to merge 2 commits from
christos/protexec into main
AGit
pull from: christos/protexec
merge into: FreeBSD:main
FreeBSD:main
FreeBSD:stable/14
FreeBSD:stable/15
FreeBSD:vendor/tzcode
FreeBSD:vendor/tzdata
FreeBSD:vendor/libarchive
FreeBSD:vendor/openssh
FreeBSD:vendor/NetBSD/bmake
FreeBSD:releng/15.0
FreeBSD:releng/14.3
FreeBSD:releng/14.4
FreeBSD:releng/15.1
FreeBSD:vendor/pkgconf
FreeBSD:vendor/openresolv
FreeBSD:vendor/openzfs/master
FreeBSD:vendor/expat
FreeBSD:vendor/ldns
FreeBSD:stable/13
FreeBSD:vendor/openzfs/zfs-2.4-release
FreeBSD:vendor/openssl-3.5
FreeBSD:vendor/openssl-3.0
FreeBSD:vendor/file
FreeBSD:vendor/sqlite3
FreeBSD:vendor/unbound
FreeBSD:vendor/smart
FreeBSD:vendor/acpica
FreeBSD:releng/13.5
FreeBSD:vendor/krb5
FreeBSD:HEAD
FreeBSD:vendor/Linux/rtw89
FreeBSD:vendor/Linux/rtw88
FreeBSD:vendor/Linux/mt76
FreeBSD:vendor/Linux/iwlwifi
FreeBSD:vendor/Linux/brcm80211
FreeBSD:vendor/Linux/ath12k
FreeBSD:vendor/Linux/ath11k
FreeBSD:vendor/Linux/ath10k
FreeBSD:vendor/Linux/ath-common
FreeBSD:vendor/zstd
FreeBSD:vendor/xz
FreeBSD:vendor/libfido2
FreeBSD:vendor/libcbor
FreeBSD:vendor/zlib
FreeBSD:vendor/NetBSD/libedit
FreeBSD:vendor/tcpdump
FreeBSD:vendor/less
FreeBSD:vendor/NetBSD/tests
FreeBSD:vendor/blocklist
FreeBSD:vendor/spleen
FreeBSD:vendor/nvi
FreeBSD:vendor/ncurses
FreeBSD:vendor/NetBSD/mtree
FreeBSD:vendor/llvm-project/release-21.x
FreeBSD:vendor/libucl
FreeBSD:vendor/libpcap
FreeBSD:vendor/llvm-project/main
FreeBSD:vendor/device-tree
FreeBSD:vendor/openzfs/zfs-2.2-release
FreeBSD:vendor/bsddialog
FreeBSD:vendor/sendmail
FreeBSD:releng/14.2
FreeBSD:vendor/mandoc
FreeBSD:vendor/google/googletest
FreeBSD:vendor/bc
FreeBSD:vendor/lua
FreeBSD:vendor/one-true-awk
FreeBSD:vendor/libsamplerate
FreeBSD:vendor/lyaml
FreeBSD:vendor/llvm-project/release-19.x
FreeBSD:vendor/libyaml
FreeBSD:vendor/openpam
FreeBSD:vendor/pam-krb5
FreeBSD:vendor/wireguard-tools
FreeBSD:vendor/edk2
FreeBSD:releng/13.4
FreeBSD:releng/14.1
FreeBSD:vendor/jemalloc
FreeBSD:vendor/arm-optimized-routines
FreeBSD:vendor/libder
FreeBSD:vendor/libecc
FreeBSD:stable/12
FreeBSD:vendor/libcxxrt
FreeBSD:releng/13.3
FreeBSD:vendor/ena-com
FreeBSD:releng/14.0
FreeBSD:vendor/wpa
FreeBSD:releng/13.2
FreeBSD:vendor/byacc
FreeBSD:vendor/llvm-project/release-18.x
FreeBSD:vendor/netcat
FreeBSD:vendor/dhcpcd
FreeBSD:vendor/ntp
FreeBSD:vendor/got/diff
FreeBSD:vendor/openzfs/zfs-2.1-release
FreeBSD:vendor/kyua
FreeBSD:releng/12.4
FreeBSD:releng/12.3
FreeBSD:vendor/llvm-project/release-17.x
FreeBSD:vendor/libevent
FreeBSD:vendor/pam_modules
FreeBSD:vendor/openssl-1.1.1
FreeBSD:stable/11
FreeBSD:vendor/unifdef
FreeBSD:vendor/NetBSD/libc-vis
FreeBSD:releng/13.1
FreeBSD:vendor/heimdal
FreeBSD:vendor/llvm-project/release-16.x
FreeBSD:vendor/opencsd
FreeBSD:vendor/openssl
FreeBSD:vendor/bearssl
FreeBSD:vendor/Juniper/libxo
FreeBSD:vendor/tcsh
FreeBSD:vendor/llvm-project/release-15.x
FreeBSD:stable/8
FreeBSD:vendor/google/capsicum-test
FreeBSD:releng/13.0
FreeBSD:vendor/bionic-x86_64-string
FreeBSD:vendor/xz-embedded
FreeBSD:vendor/llvm-project/release-14.x
FreeBSD:releng/12.2
FreeBSD:vendor/llvm-project/release-13.x
FreeBSD:vendor/terminus
FreeBSD:vendor/dma
FreeBSD:vendor/ck
FreeBSD:vendor/atf
FreeBSD:releng/11.4
FreeBSD:vendor/llvm-project/release-12.x
FreeBSD:vendor/NetBSD/vis
FreeBSD:stable/9
FreeBSD:stable/10
FreeBSD:vendor/openzfs/legacy
FreeBSD:vendor/dialog
FreeBSD:vendor/subversion
FreeBSD:releng/12.1
FreeBSD:vendor/llvm-project/release-11.x
FreeBSD:vendor/pnglite
FreeBSD:releng/11.3
FreeBSD:vendor/lib9p
FreeBSD:vendor/pcg-c
FreeBSD:vendor/llvm-project/master
FreeBSD:stable/7
FreeBSD:vendor/llvm-project/release-10.x
FreeBSD:vendor/flex
FreeBSD:vendor/apr
FreeBSD:vendor/bsnmp
FreeBSD:vendor/openbsm
FreeBSD:vendor/lutok
FreeBSD:releng/12.0
FreeBSD:vendor/llvm-project/release-9.x
FreeBSD:vendor/openssl-1.0.2
FreeBSD:vendor/llvm-project/release-8.x
FreeBSD:vendor/illumos
FreeBSD:vendor/NetBSD/blacklist
FreeBSD:vendor/llvm-openmp
FreeBSD:vendor/lldb
FreeBSD:vendor/lld
FreeBSD:vendor/llvm-libunwind
FreeBSD:vendor/libc++
FreeBSD:vendor/compiler-rt
FreeBSD:vendor/clang
FreeBSD:vendor/llvm
FreeBSD:releng/11.2
FreeBSD:vendor/lldb-90
FreeBSD:vendor/clang-90
FreeBSD:vendor/llvm-90
FreeBSD:vendor/lld-90
FreeBSD:vendor/libc++-90
FreeBSD:vendor/compiler-rt-90
FreeBSD:vendor/llvm-openmp-90
FreeBSD:vendor/llvm-libunwind-90
FreeBSD:vendor/bzip2
FreeBSD:vendor/llvm-libunwind-80
FreeBSD:vendor/clang-80
FreeBSD:vendor/llvm-openmp-80
FreeBSD:vendor/lldb-80
FreeBSD:vendor/lld-80
FreeBSD:vendor/elftoolchain
FreeBSD:vendor/libc++-80
FreeBSD:vendor/compiler-rt-80
FreeBSD:vendor/llvm-80
FreeBSD:vendor/libfdt
FreeBSD:vendor/clang-70
FreeBSD:vendor/libc++-70
FreeBSD:vendor/llvm-70
FreeBSD:vendor/lldb-70
FreeBSD:vendor/lld-70
FreeBSD:vendor/apr-util
FreeBSD:vendor/serf
FreeBSD:releng/10.4
FreeBSD:releng/11.1
FreeBSD:vendor/compiler-rt-70
FreeBSD:vendor/tzdb
FreeBSD:vendor/lldb-60
FreeBSD:vendor/lld-60
FreeBSD:vendor/libc++-60
FreeBSD:vendor/compiler-rt-60
FreeBSD:vendor/clang-60
FreeBSD:vendor/llvm-60
FreeBSD:releng/10.3
FreeBSD:vendor/dtc
FreeBSD:releng/11.0
FreeBSD:vendor/ctfdump
FreeBSD:vendor/pjdfstest
FreeBSD:vendor/heirloom-doctools
FreeBSD:releng/10.1
FreeBSD:releng/10.2
FreeBSD:releng/9.3
FreeBSD:vendor/bind9
FreeBSD:vendor/openssl-1.0.1
FreeBSD:vendor/alpine-hal
FreeBSD:vendor/cortex-strings
FreeBSD:vendor/amd
FreeBSD:vendor/libdivsufsort
FreeBSD:vendor/gcc
FreeBSD:vendor/ldns-host
FreeBSD:vendor/skein
FreeBSD:vendor/tnftp
FreeBSD:vendor/openssl-0.9.8
FreeBSD:stable/6
FreeBSD:vendor/pciids
FreeBSD:releng/8.4
FreeBSD:vendor/ficl
FreeBSD:releng/10.0
FreeBSD:vendor/gdb
FreeBSD:releng/9.2
FreeBSD:releng/9.1
FreeBSD:vendor/resolver
FreeBSD:stable/4
FreeBSD:releng/8.3
FreeBSD:vendor/bind9-9.8
FreeBSD:vendor/ipfilter
FreeBSD:vendor/ipfilter-sys
FreeBSD:vendor/NetBSD/libexecinfo
FreeBSD:vendor/misc-GNU/patch
FreeBSD:vendor/ipfilter-sys-old
FreeBSD:vendor/v4l
FreeBSD:vendor/hyperv
FreeBSD:vendor/libregex
FreeBSD:vendor/qcamain_open_hal
FreeBSD:releng/9.0
FreeBSD:vendor/NetBSD/unvis
FreeBSD:releng/7.4
FreeBSD:vendor/NetBSD/mknod
FreeBSD:vendor/bind9-9.6
FreeBSD:vendor/NetBSD/libc-pwcache
FreeBSD:releng/8.1
FreeBSD:releng/8.2
FreeBSD:vendor/groff
FreeBSD:vendor/opensolaris
FreeBSD:vendor/dtracetoolkit
FreeBSD:vendor/octeon-sdk
FreeBSD:vendor/NetBSD/softfloat
FreeBSD:releng/7.3
FreeBSD:vendor/gperf
FreeBSD:vendor/bind9-9.4
FreeBSD:vendor/com_err
FreeBSD:vendor/NetBSD/lukemftp
FreeBSD:vendor/tre
FreeBSD:vendor/gdtoa
FreeBSD:releng/7.1
FreeBSD:releng/8.0
FreeBSD:vendor/binutils
FreeBSD:vendor/ee
FreeBSD:releng/6.4
FreeBSD:releng/7.2
FreeBSD:vendor/misc-GNU/sort
FreeBSD:vendor/testfloat
FreeBSD:vendor/x86emu
FreeBSD:stable/5
FreeBSD:releng/6.3
FreeBSD:vendor/pf-sys
FreeBSD:vendor/pf
FreeBSD:vendor/top
FreeBSD:releng/7.0
FreeBSD:vendor/wpa_supplicant
FreeBSD:vendor/bind9-9.3
FreeBSD:vendor/libbegemot
FreeBSD:vendor/ath
FreeBSD:vendor/misc-GNU/cpio
FreeBSD:vendor/hostapd
FreeBSD:releng/5.5
FreeBSD:releng/6.1
FreeBSD:releng/6.2
FreeBSD:vendor/misc-GNU/cvs
FreeBSD:stable/3
FreeBSD:vendor/libreadline
FreeBSD:vendor/misc-GNU/diff
FreeBSD:vendor/ngatm
FreeBSD:vendor/csup
FreeBSD:releng/6.0
FreeBSD:releng/4.11
FreeBSD:vendor/pppd
FreeBSD:releng/5.3
FreeBSD:releng/5.4
FreeBSD:vendor/NetBSD/lukemftpd
FreeBSD:vendor/OpenBSD
FreeBSD:vendor/libuwx
FreeBSD:releng/4.10
FreeBSD:releng/4.8
FreeBSD:releng/4.9
FreeBSD:vendor/nve
FreeBSD:vendor/misc-GNU/texinfo
FreeBSD:vendor/NetBSD/misc
FreeBSD:releng/5.2
FreeBSD:releng/4.7
FreeBSD:releng/5.0
FreeBSD:releng/5.1
FreeBSD:vendor/isc-dhcp
FreeBSD:vendor/misc-GNU/grep
FreeBSD:vendor/altq
FreeBSD:vendor/SGI
FreeBSD:vendor/alsa
FreeBSD:vendor/bind
FreeBSD:releng/4.4
FreeBSD:releng/4.5
FreeBSD:releng/4.6
FreeBSD:releng/4.3
FreeBSD:vendor/ext2fs
FreeBSD:vendor/kerberosIV
FreeBSD:stable/2.2
FreeBSD:vendor/traceroute
FreeBSD:vendor/smbfs
FreeBSD:vendor/NetBSD/xlint
FreeBSD:vendor/NetBSD/sort
FreeBSD:vendor/opie
FreeBSD:vendor/perl5
FreeBSD:vendor/misc-GNU/bc
FreeBSD:vendor/lomac
FreeBSD:vendor/misc-GNU/awk
FreeBSD:vendor/tcp_wrappers
FreeBSD:vendor/libpam
FreeBSD:stable/2.1
FreeBSD:vendor/libgmp
FreeBSD:vendor/sym
FreeBSD:vendor/libdes
FreeBSD:vendor/ssleay
FreeBSD:vendor/misc-GNU/bison
FreeBSD:vendor/xe
FreeBSD:vendor/mrouted
FreeBSD:vendor/global
FreeBSD:vendor/CSRG
FreeBSD:vendor/softdep
FreeBSD:vendor/softupdates
FreeBSD:vendor/tcl
FreeBSD:vendor/voxware
FreeBSD:vendor/rarpd
FreeBSD:vendor/bind4
FreeBSD:vendor/stallion
FreeBSD:vendor/misc-GNU/misc
FreeBSD:vendor/ntpd
FreeBSD:vendor/rpcgen
FreeBSD:vendor/ncftp
FreeBSD:releng/2.0.5
FreeBSD:releng/2.0
FreeBSD:releng/1
Labels
Clear labels
No items
No labels
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
FreeBSD/src!29
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "christos/protexec"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
@ -257,1 +257,3 @@LinuxThis.Xr sysctl 8variable is available only when Linux support is compiled into the kernel, andprobably "Linux application support" or similar (do we have a consistent way to refer to the Linuxulator)?
@ -258,0 +258,4 @@.Xr sysctl 8variable is available only when Linux support is compiled into the kernel, andaffects Linux binaries only.It is a hack to get around the fact that Linux sets PROT_EXEC automaticallyPer the IRC discussion, Linux doesn't do this universally, it's really a Linuxulator quirk that we'll hopefully fix. And it's presumably only i386 Linux emulation?
@ -258,2 +263,3 @@.Xr mmap 2compatibility.call, which.FxThe issue is that older i386 processors did not have a way to allow R or W without X, so you could set
PROT_READ | PROT_WRITEand then execute that memory (on both Linux and FreeBSD). Some software took advantage of that (maybe just out of laziness).eb02ece9c3b248ab6b2fSome more comments via IRC. It looks like the Linuxulator was fixed in
97d06da692and we can probably just do away with the hack altogether. IMO we should go with this change (with a few man page tweaks), then flip the default in main.b248ab6b2f33fc6e2fc5d01e8e230206eea5f853Committed.
Pull request closed