Fixes ancient slab bug
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 31 May 2011 17:38:44 +0000 (10:38 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Thu, 3 Nov 2011 00:36:03 +0000 (17:36 -0700)
commitd9870479a8c5cc67ec4019f84fd3ee8dff07933a
tree736f26c810d2231d1d2e9ea27769489e258615bd
parentee9eae1aa746a5bc7131b9aab5fadc574b571c7c
Fixes ancient slab bug

We shouldn't have been locking at all in kmem_cache_grow().  I made it
internal, since no outsiders should be calling it either.  Had we
properly locked, we would have deadlocked and noticed this when it was
written, 2.5 years ago.

Fun fact: I found this in a storm of bugs involving massive kthreading.
It looked like kmsgs (from a slab) were getting misrouted, and multiple
cores were clobbering each others kmsgs (including the kthread*
payload)...
kern/include/slab.h
kern/src/slab.c