* [PATCH] mm: fallback_alloc cpuset_zone_allowed irq fix
@ 2006-12-06 10:49 ` Paul Jackson, Paul Jackson
0 siblings, 0 replies; 2+ messages in thread
From: Paul Jackson @ 2006-12-06 10:49 UTC (permalink / raw)
To: Andrew Morton, linux-kernel; +Cc: linux-mm, menage, Paul Jackson, clameter
From: Paul Jackson <pj@sgi.com>
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>
---
mm/slab.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletion(-)
--- 2.6.19-rc6-mm2.orig/mm/slab.c 2006-11-30 19:45:50.000000000 -0800
+++ 2.6.19-rc6-mm2/mm/slab.c 2006-12-05 22:41:49.000000000 -0800
@@ -3261,7 +3261,8 @@ void *fallback_alloc(struct kmem_cache *
int nid = zone_to_nid(*z);
if (zone_idx(*z) <= ZONE_NORMAL &&
- cpuset_zone_allowed(*z, flags) &&
+ cpuset_zone_allowed(*z,
+ flags | __GFP_HARDWALL) &&
cache->nodelists[nid])
obj = ____cache_alloc_node(cache,
flags | __GFP_THISNODE, nid);
--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <pj@sgi.com> 1.925.600.0401
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCH] mm: fallback_alloc cpuset_zone_allowed irq fix
@ 2006-12-06 10:49 ` Paul Jackson, Paul Jackson
0 siblings, 0 replies; 2+ messages in thread
From: Paul Jackson, Paul Jackson @ 2006-12-06 10:49 UTC (permalink / raw)
To: Andrew Morton, linux-kernel; +Cc: linux-mm, menage, Paul Jackson, clameter
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>
---
mm/slab.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletion(-)
--- 2.6.19-rc6-mm2.orig/mm/slab.c 2006-11-30 19:45:50.000000000 -0800
+++ 2.6.19-rc6-mm2/mm/slab.c 2006-12-05 22:41:49.000000000 -0800
@@ -3261,7 +3261,8 @@ void *fallback_alloc(struct kmem_cache *
int nid = zone_to_nid(*z);
if (zone_idx(*z) <= ZONE_NORMAL &&
- cpuset_zone_allowed(*z, flags) &&
+ cpuset_zone_allowed(*z,
+ flags | __GFP_HARDWALL) &&
cache->nodelists[nid])
obj = ____cache_alloc_node(cache,
flags | __GFP_THISNODE, nid);
--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <pj@sgi.com> 1.925.600.0401
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2006-12-06 10:50 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-12-06 10:49 [PATCH] mm: fallback_alloc cpuset_zone_allowed irq fix Paul Jackson
2006-12-06 10:49 ` Paul Jackson, Paul Jackson
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.