kernel = Fix tsleep(), remove MAILBOX signals, change signalset locks for LWPs
authorMatthew Dillon <dillon@apollo.backplane.com>
Sat, 12 Nov 2011 06:27:22 +0000 (22:27 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sat, 12 Nov 2011 06:27:22 +0000 (22:27 -0800)
commit94f98873ae3f49c05cb6155508726f987a584cae
treedbec7d744e43ea4906d2091fe05fc44632eb57c0
parent3583bbb419ec67c251daa38bc58fa0739ad1eeac
kernel = Fix tsleep(), remove MAILBOX signals, change signalset locks for LWPs

* tsleep() was improperly calling lwkt_gettoken() and potentially blocking
  prior to sleeping, which it isn't supposed to do.

  This may have been the cause of several odd panics and corruption, though
  no smoking gun was found.

* Change access to lp->lwp_siglist to use a spinlock instead of a token.
  Add a per-LWP spinlock in addition to the per-LWP token.

* Remove MAILBOX signals (which require p->p_token).  These are no longer
  used.
18 files changed:
sys/cpu/i386/include/pmap.h
sys/cpu/x86_64/include/pmap.h
sys/emulation/linux/linux_misc.c
sys/kern/init_main.c
sys/kern/kern_fork.c
sys/kern/kern_sig.c
sys/kern/kern_synch.c
sys/platform/pc32/i386/machdep.c
sys/platform/pc64/x86_64/machdep.c
sys/platform/vkernel/i386/cpu_regs.c
sys/platform/vkernel64/x86_64/cpu_regs.c
sys/sys/proc.h
sys/sys/signal.h
sys/sys/signal2.h
sys/sys/signalvar.h
sys/vfs/mfs/mfs_vfsops.c
sys/vfs/procfs/procfs_ctl.c
sys/vm/vm_vmspace.c