diff options
author | Richard Braun <rbraun@sceen.net> | 2013-06-02 18:50:56 +0200 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2013-06-02 18:50:56 +0200 |
commit | b67a79a13ae2a42ed4a64bfd2bd3b4982cfdefca (patch) | |
tree | c22a4a1d465ef410141faaff1b9024181cffff5f /kern | |
parent | 1855863a892ad28ef681129e57ad375e3805362b (diff) |
Fix yet another locking error in the slab allocator
* kern/slab.c (kmem_cache_free): Relock cache before retrying releasing
an object to the CPU pool layer.
Diffstat (limited to 'kern')
-rw-r--r-- | kern/slab.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/kern/slab.c b/kern/slab.c index d14d07a..56fadbf 100644 --- a/kern/slab.c +++ b/kern/slab.c @@ -1229,6 +1229,7 @@ fast_free: simple_unlock(&cpu_pool->lock); kmem_cache_free(cache->cpu_pool_type->array_cache, (vm_offset_t)array); + simple_lock(&cpu_pool->lock); goto fast_free; } |