The primary mbuf cluster management code needs to be made MPSAFE since
authorMatthew Dillon <dillon@dragonflybsd.org>
Thu, 1 Dec 2005 18:40:56 +0000 (18:40 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Thu, 1 Dec 2005 18:40:56 +0000 (18:40 +0000)
commitdf8d1020745c0668cc93819c201cb92340fb7cdd
tree4e43991f0e227d399616ff91ce61acfc7650602b
parent9e493fb5231c85032d0a86a114bde982aaa19516
The primary mbuf cluster management code needs to be made MPSAFE since
m_free() is now MPSAFE.  This involves using atomic_*() increment and
decrement for the mbuf cluster ref count and using a serializer if there
is a potential for a double-free (if the ref count is 2 or greater).  The
common code path will tend not to need the serializer unless the interface
is being tapped.

Reported-by: Peter Avalos <pavalos@theshell.com>
sys/kern/uipc_mbuf.c
sys/kern/uipc_syscalls.c