--- memhotplug-dave/arch/ppc64/Kconfig | 10 ++++++++++ memhotplug-dave/arch/ppc64/mm/numa.c | 6 +++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff -puN arch/ppc64/Kconfig~FROM-MM-x86-abstract-discontigmem-setup-ppc64-fix arch/ppc64/Kconfig --- memhotplug/arch/ppc64/Kconfig~FROM-MM-x86-abstract-discontigmem-setup-ppc64-fix 2005-03-11 10:52:13.000000000 -0800 +++ memhotplug-dave/arch/ppc64/Kconfig 2005-03-11 10:52:13.000000000 -0800 @@ -203,6 +203,16 @@ config DISCONTIGMEM bool "Discontiguous Memory Support" depends on SMP && PPC_PSERIES +config HAVE_MEMORY_PRESENT + bool + depends on DISCONTIGMEM + default y + +config NEED_NODE_MEMMAP_SIZE + bool + depends on DISCONTIGMEM + default y + config NUMA bool "NUMA support" depends on DISCONTIGMEM diff -puN arch/ppc64/mm/numa.c~FROM-MM-x86-abstract-discontigmem-setup-ppc64-fix arch/ppc64/mm/numa.c --- memhotplug/arch/ppc64/mm/numa.c~FROM-MM-x86-abstract-discontigmem-setup-ppc64-fix 2005-03-11 10:52:13.000000000 -0800 +++ memhotplug-dave/arch/ppc64/mm/numa.c 2005-03-11 10:52:13.000000000 -0800 @@ -62,10 +62,10 @@ void memory_present(int nid, unsigned lo unsigned long end_pfn) { unsigned long i; - unsigned long start_addr = start << PAGE_SHIFT; - unsigned long end_addr = end << PAGE_SHIFT; + unsigned long start_addr = start_pfn << PAGE_SHIFT; + unsigned long end_addr = end_pfn << PAGE_SHIFT; - for (i = start ; i < end; i += MEMORY_INCREMENT) + for (i = start_addr; i < end_addr; i += MEMORY_INCREMENT) numa_memory_lookup_table[i >> MEMORY_INCREMENT_SHIFT] = nid; } _