slub: Add missing irq restore for the OOM path
authorChristoph Lameter <cl@linux.com>
Tue, 22 Mar 2011 18:32:53 +0000 (13:32 -0500)
committerPekka Enberg <penberg@kernel.org>
Tue, 22 Mar 2011 18:48:04 +0000 (20:48 +0200)
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))