
Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
---

 arch/ppc64/kernel/rtasd.c                  |    0 
 memhotplug-dave/arch/ppc64/kernel/prom.c   |    2 +-
 memhotplug-dave/arch/ppc64/kernel/vio.c    |    2 +-
 memhotplug-dave/arch/ppc64/mm/hash_utils.c |    2 +-
 memhotplug-dave/arch/ppc64/mm/init.c       |    7 +++++++
 memhotplug-dave/arch/ppc64/xmon/xmon.c     |    2 +-
 6 files changed, 11 insertions(+), 4 deletions(-)

diff -puN arch/ppc64/Kconfig~I1-nonlinear-ppc64-dave-hmore-1 arch/ppc64/Kconfig
diff -puN arch/ppc64/kernel/prom.c~I1-nonlinear-ppc64-dave-hmore-1 arch/ppc64/kernel/prom.c
--- memhotplug/arch/ppc64/kernel/prom.c~I1-nonlinear-ppc64-dave-hmore-1	2004-08-20 11:28:16.000000000 -0700
+++ memhotplug-dave/arch/ppc64/kernel/prom.c	2004-08-20 11:28:16.000000000 -0700
@@ -734,7 +734,7 @@ static void __init prom_initialize_dart_
 	 * will blow up an entire large page anyway in the kernel mapping
 	 */
 	RELOC(dart_tablebase) = (unsigned long)
-		abs_to_virt(lmb_alloc_base(1UL<<24, 1UL<<24, 0x80000000L));
+		boot_abs_virt(lmb_alloc_base(1UL<<24, 1UL<<24, 0x80000000L));
 
 	prom_printf("Dart at: %x\n", RELOC(dart_tablebase));
 }
diff -puN arch/ppc64/kernel/rtas.c~I1-nonlinear-ppc64-dave-hmore-1 arch/ppc64/kernel/rtas.c
diff -puN arch/ppc64/kernel/smp.c~I1-nonlinear-ppc64-dave-hmore-1 arch/ppc64/kernel/smp.c
diff -puN arch/ppc64/kernel/stab.c~I1-nonlinear-ppc64-dave-hmore-1 arch/ppc64/kernel/stab.c
diff -puN arch/ppc64/kernel/vio.c~I1-nonlinear-ppc64-dave-hmore-1 arch/ppc64/kernel/vio.c
--- memhotplug/arch/ppc64/kernel/vio.c~I1-nonlinear-ppc64-dave-hmore-1	2004-08-20 11:28:16.000000000 -0700
+++ memhotplug-dave/arch/ppc64/kernel/vio.c	2004-08-20 11:28:16.000000000 -0700
@@ -162,7 +162,7 @@ void __init iommu_vio_init(void)
 	cb.itc_busno = 255;    /* Bus 255 is the virtual bus */
 	cb.itc_virtbus = 0xff; /* Ask for virtual bus */
 
-	cbp = virt_to_abs(&cb);
+	cbp = boot_virt_to_abs(&cb);
 	HvCallXm_getTceTableParms(cbp);
 
 	veth_iommu_table.it_size        = cb.itc_size / 2;
diff -puN arch/ppc64/mm/hash_utils.c~I1-nonlinear-ppc64-dave-hmore-1 arch/ppc64/mm/hash_utils.c
--- memhotplug/arch/ppc64/mm/hash_utils.c~I1-nonlinear-ppc64-dave-hmore-1	2004-08-20 11:28:16.000000000 -0700
+++ memhotplug-dave/arch/ppc64/mm/hash_utils.c	2004-08-20 11:28:16.000000000 -0700
@@ -81,7 +81,7 @@ static inline void loop_forever(void)
 }
 
 #ifdef CONFIG_PPC_PSERIES
-static inline void create_pte_mapping(unsigned long start, unsigned long end,
+inline void create_pte_mapping(unsigned long start, unsigned long end,
 				      unsigned long mode, int large)
 {
 	unsigned long addr;
diff -puN arch/ppc64/mm/init.c~I1-nonlinear-ppc64-dave-hmore-1 arch/ppc64/mm/init.c
--- memhotplug/arch/ppc64/mm/init.c~I1-nonlinear-ppc64-dave-hmore-1	2004-08-20 11:28:16.000000000 -0700
+++ memhotplug-dave/arch/ppc64/mm/init.c	2004-08-20 11:28:16.000000000 -0700
@@ -36,6 +36,8 @@
 #include <linux/delay.h>
 #include <linux/bootmem.h>
 #include <linux/highmem.h>
+#include <linux/nonlinear.h>
+#include <linux/memory_hotplug.h>
 
 #include <asm/pgalloc.h>
 #include <asm/page.h>
@@ -538,6 +540,11 @@ void __init do_init_bootmem(void)
 	alloc_memsections(0, 0, total_pages);
 #endif
 
+#ifdef CONFIG_NONLINEAR
+	setup_memsections();
+	alloc_memsections(0, 0, total_pages);
+#endif
+
 	/*
 	 * Find an area to use for the bootmem bitmap.  Calculate the size of
 	 * bitmap required as (Total Memory) / PAGE_SIZE / BITS_PER_BYTE.
diff -puN arch/ppc64/xmon/xmon.c~I1-nonlinear-ppc64-dave-hmore-1 arch/ppc64/xmon/xmon.c
--- memhotplug/arch/ppc64/xmon/xmon.c~I1-nonlinear-ppc64-dave-hmore-1	2004-08-20 11:28:16.000000000 -0700
+++ memhotplug-dave/arch/ppc64/xmon/xmon.c	2004-08-20 11:28:16.000000000 -0700
@@ -273,7 +273,7 @@ static inline void disable_surveillance(
 		args.args[0] = SURVEILLANCE_TOKEN;
 		args.args[1] = 0;
 		args.args[2] = 0;
-		enter_rtas(__pa(&args));
+		enter_rtas(__boot_pa(&args));
 	}
 #endif
 }
diff -L drivers/base/memory.c -puN /dev/null /dev/null
diff -puN include/asm-ppc64/abs_addr.h~I1-nonlinear-ppc64-dave-hmore-1 include/asm-ppc64/abs_addr.h
diff -L include/asm-ppc64/memory_hotplug.h -puN /dev/null /dev/null
diff -puN include/asm-ppc64/nonlinear.h~I1-nonlinear-ppc64-dave-hmore-1 include/asm-ppc64/nonlinear.h
diff -puN include/asm-ppc64/page.h~I1-nonlinear-ppc64-dave-hmore-1 include/asm-ppc64/page.h
diff -puN include/linux/bootmem.h~I1-nonlinear-ppc64-dave-hmore-1 include/linux/bootmem.h
diff -L include/linux/memory_hotplug.h -puN /dev/null /dev/null
diff -puN include/linux/mmzone.h~I1-nonlinear-ppc64-dave-hmore-1 include/linux/mmzone.h
diff -puN include/linux/nonlinear.h~I1-nonlinear-ppc64-dave-hmore-1 include/linux/nonlinear.h
diff -L mm/memory_hotplug.c -puN /dev/null /dev/null
diff -puN mm/nonlinear.c~I1-nonlinear-ppc64-dave-hmore-1 mm/nonlinear.c
diff -puN mm/page_alloc.c~I1-nonlinear-ppc64-dave-hmore-1 mm/page_alloc.c
diff -puN arch/ppc64/kernel/rtasd.c~I1-nonlinear-ppc64-dave-hmore-1 arch/ppc64/kernel/rtasd.c
_
