summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Lameter <cl@linux.com>2011-03-22 13:32:53 -0500
committerPekka Enberg <penberg@kernel.org>2011-03-22 20:48:04 +0200
commit2fd66c517d5e98de2528d86e0e62f5069ff99f59 (patch)
tree2d8ef9bf8b71872475728f778f0c095ae395785b
parentf741a79e982cf56d7584435bad663553ffe6715f (diff)
downloadlinux-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.c3
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))