

---

 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-03 09:04:57.000000000 -0800
+++ memhotplug-dave/arch/ppc64/Kconfig	2005-03-03 09:04:57.000000000 -0800
@@ -200,6 +200,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-03 09:04:57.000000000 -0800
+++ memhotplug-dave/arch/ppc64/mm/numa.c	2005-03-03 09:04:57.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;
 }
 
_
