summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorChristoph Lameter <clameter@sgi.com>2006-09-26 06:31:44 (GMT)
committerLinus Torvalds <torvalds@g5.osdl.org>2006-09-26 15:48:50 (GMT)
commitbd1b1677b5d4f39deda068bf5cc43ce3aaec839f (patch)
tree89ac1d663b0c04da52af861e2bc7b0d7e49149f7 /arch
parent3d99cfb5f46191fc68f1343feeb2cf835001f7d7 (diff)
downloadlinux-fsl-qoriq-bd1b1677b5d4f39deda068bf5cc43ce3aaec839f.tar.xz
[PATCH] Guarantee that the uncached allocator gets pages on the correct node
The uncached allocator manages per node pools. Specify __GFP_THISNODE in order to force allocation on the indicated node or fail. The uncached allocator has already logic to deal with failing allocations. Signed-off-by: Christoph Lameter <clameter@sgi.com> Cc: Andy Whitcroft <apw@shadowen.org> Cc: Mel Gorman <mel@csn.ul.ie> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/ia64/kernel/uncached.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/ia64/kernel/uncached.c b/arch/ia64/kernel/uncached.c
index 4c73a67..f813caa 100644
--- a/arch/ia64/kernel/uncached.c
+++ b/arch/ia64/kernel/uncached.c
@@ -98,7 +98,8 @@ static int uncached_add_chunk(struct uncached_pool *uc_pool, int nid)
/* attempt to allocate a granule's worth of cached memory pages */
- page = alloc_pages_node(nid, GFP_KERNEL | __GFP_ZERO,
+ page = alloc_pages_node(nid, GFP_KERNEL | __GFP_ZERO |
+ __GFP_THISNODE | __GFP_NORETRY | __GFP_NOWARN,
IA64_GRANULE_SHIFT-PAGE_SHIFT);
if (!page) {
mutex_unlock(&uc_pool->add_chunk_mutex);