[PATCH] mm: fallback_alloc cpuset_zone_allowed irq fix
authorPaul Jackson <pj@sgi.com>
Fri, 8 Dec 2006 10:35:53 +0000 (02:35 -0800)
committerLinus Torvalds <torvalds@woody.osdl.org>
Fri, 8 Dec 2006 16:28:37 +0000 (08:28 -0800)
commitb8b50b6519afa9891b753c4fffa89d89e04df66a
tree02aff736f77241445d588817c0ea629e69a0b69a
parent01a732eb22dab153732b94962467eaabb1fd3797
[PATCH] mm: fallback_alloc cpuset_zone_allowed irq fix

fallback_alloc() could end up calling cpuset_zone_allowed() with interrupts
disabled (by code in kmem_cache_alloc_node()), but without __GFP_HARDWALL
set, leading to a possible call of a sleeping function with interrupts
disabled.

This results in the BUG report:

  BUG: sleeping function called from invalid context at kernel/cpuset.c:1520
in_atomic():0, irqs_disabled():1

Thanks to Paul Menage for catching this one.

Signed-off-by: Paul Jackson <pj@sgi.com>
Cc: Paul Menage <menage@google.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
mm/slab.c