x86-64, numa: Allocate memnodemap under max_pfn_mapped
authorYinghai Lu <yinghai@kernel.org>
Tue, 28 Dec 2010 00:48:08 +0000 (16:48 -0800)
committerH. Peter Anvin <hpa@linux.intel.com>
Wed, 29 Dec 2010 23:48:08 +0000 (15:48 -0800)
We need to access it right way, so make sure that it is mapped already.

Prepare to put page table on local node, and nodemap is used before that.

Signed-off-by: Yinghai Lu <yinghai@kernel.org>
LKML-Reference: <4D1933C8.7060105@kernel.org>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
arch/x86/mm/numa_64.c

index 7762a51..02d36ff 100644 (file)
@@ -87,7 +87,7 @@ static int __init allocate_cachealigned_memnodemap(void)
 
        addr = 0x8000;
        nodemap_size = roundup(sizeof(s16) * memnodemapsize, L1_CACHE_BYTES);
-       nodemap_addr = memblock_find_in_range(addr, max_pfn<<PAGE_SHIFT,
+       nodemap_addr = memblock_find_in_range(addr, get_max_mapped(),
                                      nodemap_size, L1_CACHE_BYTES);
        if (nodemap_addr == MEMBLOCK_ERROR) {
                printk(KERN_ERR