- Always use the proc lock of the task leader to protect the peers list of   processes. - Don't construct fake call args and then call kill().  psignal is not   anymore complicated and is quicker and not prone to locking problems.   Calling psignal() avoids having to do a pfind() since we already have a   proc pointer and also allows us to keep the task leader locked while we   kill all the peer processes so the list is kept coherent. - When a kthread exits, do a wakeup() on its proc pointers.  This can be   used by kernel modules that have kthreads and want to ensure they have   safely exited before completely the MOD_UNLOAD event.
- Always use the proc lock of the task leader to protect the peers list of
  processes.
- Don't construct fake call args and then call kill().  psignal is not
  anymore complicated and is quicker and not prone to locking problems.
  Calling psignal() avoids having to do a pfind() since we already have a
  proc pointer and also allows us to keep the task leader locked while we
  kill all the peer processes so the list is kept coherent.
- When a kthread exits, do a wakeup() on its proc pointers.  This can be
  used by kernel modules that have kthreads and want to ensure they have
  safely exited before completely the MOD_UNLOAD event.

Connectivity provided by:	Usenix wireless

jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase