diff options
| author | Andrew Morton <akpm@digeo.com> | 2003-02-02 06:08:03 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2003-02-02 06:08:03 -0800 |
| commit | 43bb7a3a050adbfa31befe0d89db6606fb5141df (patch) | |
| tree | 46a92d8c9f2f6e024ea2ca578a18b3803b28bf1a | |
| parent | 4a3691214ab7f95b23909d899df65ad28c145209 (diff) | |
[PATCH] slab IRQ fix
Patch from Manfred Spraul <manfred@colorfullife.com>
cache_alloc_refill() forgets to disable interrupts again on an error path.
This exposes us to slab corruption and it makes slab debugging go BUG (it
expects local irqs to be disabled).
| -rw-r--r-- | mm/slab.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/mm/slab.c b/mm/slab.c index e99393f94e7d..5fa3a4c6862d 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -1419,6 +1419,8 @@ static int cache_grow (kmem_cache_t * cachep, int flags) opps1: kmem_freepages(cachep, objp); failed: + if (local_flags & __GFP_WAIT) + local_irq_disable(); return 0; } |
