1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-18 10:35:55 +00:00
freebsd/sys
Ariff Abdullah e4e61333ff Last (again ?!?) major commit for RELENG_7, featuring total Giant
eradication in/from userland path, countless locking fixes, etc.

- General sleep call through msleep(9) has been converted to condvar(9)
  with better consistencies.
- Heavily guard every possible "slow path" entries (open(), close(),
  few ioctl()s, sysctls), but once it entering "fast path" (io, interrupt
  started), they are free to fly on their own.
- Rearrange locking sequences, resulting better concurrency and
  serialization. Large part doesn't even need locking at all, and will be
  removed in future. Less clutter, except in few places due to lock
  ordering.
- Anonymous mixer object creation/deletion to simplify mixer handling
  beyond typical mixer ioctls.
  Submitted by:		chibis (with modifications)
- Add few mix_[get|set|..] functions to avoid calling mixer_ioctl()
  directly using cryptic arguments.
- Locking fixes to avoid possible deadlock with (still under Giant) USB.
- Better simplex/duplex device handling.
- Recover mmap() functionality for recording, which has been lost
  since 2.2.x - 3.x (the introduction of newpcm). Full-duplex mmap still
  doesn't work (due to VM/page design), but people still can mmap
  both by opening each direction separately. mmaped playback is guarantee
  to work either way.
- New sysctl: "hw.snd.compat_linux_mmap" to allow PROT_EXEC page
  mapping, due to recent changes in linux compatibility layer which
  require it. All linux applications that using sound + mmap() (mostly games)
  require this to be enabled. Disabled by default.
- Other goodies.. too many, that will increase releng7 shareholder value
  and make users of releng6 (and below) cry ;)

* This commit should be atomic. If anything goes wrong (not counting problem
  originated from elsewhere), I will not hesitate to revert everything back
  within 12 hours. This substantial changes itself not a rocket science
  and the process has begun for almost 2 years, and lots of incremental
  changes are already in place during that period of time.
* Some issues does occur in snd_emu10kx (note the 'x') due to various
  internal locking issues and it is currently being worked on by chibis.

Tested by:	chibis (Yuriy Tsibizov), joel, Alexandre Vieira,
          	many innocent souls...
2007-06-16 03:37:28 +00:00
..
amd64 Prototype (but functional) Linux-ish /dev/nvram interface to the extra 2007-06-15 22:58:14 +00:00
arm Introduce pmap_kenter_supersection(), which maps 16MB super-sections into 2007-06-11 21:29:26 +00:00
boot
bsm
cam Commit for Nate his "guidelines for submitting quirks". 2007-06-10 04:31:55 +00:00
cddl Eliminate now-unused SUSER_ALLOWJAIL arguments to priv_check_cred(); in 2007-06-12 00:12:01 +00:00
coda
compat Remove stale 'XXX implement' comments for syscalls which have since been 2007-06-15 21:54:26 +00:00
conf MFp4: Add tmpfs, an efficient memory file system. 2007-06-16 01:56:05 +00:00
contrib Pointer to an ICMP header was getting left behind after doing a pullup. 2007-06-09 09:28:36 +00:00
crypto
ddb
dev Last (again ?!?) major commit for RELENG_7, featuring total Giant 2007-06-16 03:37:28 +00:00
fs MFp4: Add tmpfs, an efficient memory file system. 2007-06-16 01:56:05 +00:00
gdb Add kdb_cpu_sync_icache(), intended to synchronize instruction 2007-06-09 21:55:17 +00:00
geom Add the MBR partitioning scheme to g_part. This does not yet 2007-06-13 04:27:36 +00:00
gnu Eliminate now-unused SUSER_ALLOWJAIL arguments to priv_check_cred(); in 2007-06-12 00:12:01 +00:00
i4b
i386 Prototype (but functional) Linux-ish /dev/nvram interface to the extra 2007-06-15 22:58:14 +00:00
ia64 Enable SCTP by default for GENERIC kernels in order to give it 2007-06-14 17:14:27 +00:00
isa Prototype (but functional) Linux-ish /dev/nvram interface to the extra 2007-06-15 22:58:14 +00:00
kern - Fix an off by one error in sched_pri_range. 2007-06-15 19:33:58 +00:00
libkern Unbreak high resolution profiling a little: use dummy asms to prevent 2007-06-13 06:17:48 +00:00
modules MFp4: Add tmpfs, an efficient memory file system. 2007-06-16 01:56:05 +00:00
net - Conditionally pickup Giant around the network interface 2007-06-15 02:53:51 +00:00
net80211 Prefer __packed to __attribute__((__packed__)). 2007-06-11 19:34:53 +00:00
netatalk
netatm
netgraph Remove two more instances of the USBDEV() macro. 2007-06-13 12:36:01 +00:00
netinet - Raise max range of sctp_logging sysctl so panda does not disallow 2007-06-16 03:28:18 +00:00
netinet6 Garbage collect unused variables. 2007-06-15 22:56:12 +00:00
netipsec In case of failure we can directly return ENOBUFS because 2007-06-16 00:15:14 +00:00
netipx Include priv.h to pick up suser(9) definitions, missed in an earlier 2007-06-13 22:42:43 +00:00
netkey
netnatm
netncp
netsmb Initialize some variables that GCC4.2 thinks might possibly be used without 2007-06-15 23:49:54 +00:00
nfs
nfs4client
nfsclient
nfsserver Include priv.h to pick up suser(9) definitions, missed in an earlier 2007-06-13 22:42:43 +00:00
opencrypto
pc98 Enable SCTP by default for GENERIC kernels in order to give it 2007-06-14 17:14:27 +00:00
pccard
pci The mac address must be written a word length at a time, it was having no effect before. 2007-06-15 21:45:41 +00:00
powerpc Enable SCTP by default for GENERIC kernels in order to give it 2007-06-14 17:14:27 +00:00
rpc
security In setaudit_addr(), drop the process lock in error cases. 2007-06-15 15:20:56 +00:00
sparc64 Enable SCTP by default for GENERIC kernels in order to give it 2007-06-14 17:14:27 +00:00
sun4v Enable SCTP by default for GENERIC kernels in order to give it 2007-06-14 17:14:27 +00:00
sys Simplify/optimize RB_NFIND(). 2007-06-15 16:09:47 +00:00
tools
ufs Eliminate now-unused SUSER_ALLOWJAIL arguments to priv_check_cred(); in 2007-06-12 00:12:01 +00:00
vm Eliminate dead code: We have not performed pageouts on the kernel object 2007-06-13 06:10:10 +00:00
Makefile