
don't do __va() in non-existent addresses.

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

 memhotplug-dave/arch/ppc64/mm/init.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)

diff -puN arch/ppc64/mm/init.c~G2-no-memory-at-high_memory-ppc64 arch/ppc64/mm/init.c
--- memhotplug/arch/ppc64/mm/init.c~G2-no-memory-at-high_memory-ppc64	2005-04-13 14:20:54.000000000 -0700
+++ memhotplug-dave/arch/ppc64/mm/init.c	2005-04-13 14:20:54.000000000 -0700
@@ -721,7 +721,8 @@ void __init mem_init(void)
 	unsigned long reservedpages = 0, codesize, initsize, datasize, bsssize;
 
 	num_physpages = max_low_pfn;	/* RAM is assumed contiguous */
-	high_memory = (void *) __va(max_low_pfn * PAGE_SIZE);
+	/* The strange -1 +1 is to avoid calling __va on an invalid address */
+	high_memory = (void *) (__va(max_low_pfn * PAGE_SIZE - 1) + 1);
 
 #if defined(CONFIG_DISCONTIGMEM) || defined(CONFIG_SPARSEMEM)
         for_each_online_node(nid) {
_
