slub: Add missing irq restore for the OOM path
Christoph Lameter [Tue, 22 Mar 2011 18:32:53 +0000 (13:32 -0500)]
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>

mm/slub.c

index 7e4f835..e126cfb 100644 (file)
--- 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))