diff options
author | Christoph Lameter <cl@linux.com> | 2011-03-22 13:32:53 -0500 |
---|---|---|
committer | Pekka Enberg <penberg@kernel.org> | 2011-03-22 20:48:04 +0200 |
commit | 2fd66c517d5e98de2528d86e0e62f5069ff99f59 (patch) | |
tree | 2d8ef9bf8b71872475728f778f0c095ae395785b | |
parent | f741a79e982cf56d7584435bad663553ffe6715f (diff) | |
download | linux-2fd66c517d5e98de2528d86e0e62f5069ff99f59.tar.gz linux-2fd66c517d5e98de2528d86e0e62f5069ff99f59.tar.bz2 linux-2fd66c517d5e98de2528d86e0e62f5069ff99f59.zip |
slub: Add missing irq restore for the OOM path
OOM path is missing the irq restore in the CONFIG_CMPXCHG_LOCAL case.
Signed-off-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
-rw-r--r-- | mm/slub.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/mm/slub.c b/mm/slub.c index 7e4f835e32ab..e126cfbd3df2 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -1857,6 +1857,9 @@ new_slab: } if (!(gfpflags & __GFP_NOWARN) && printk_ratelimit()) slab_out_of_memory(s, gfpflags, node); +#ifdef CONFIG_CMPXCHG_LOCAL + local_irq_restore(flags); +#endif return NULL; debug: if (!alloc_debug_processing(s, c->page, object, addr)) |