Subject: [IA64] Kdump: Use the machine address for the boot params region
Date: Thu, 12 Jul 2007 15:45:24 +0900
From: Simon Horman <horms@verge.net.au>

The boot params region needs to be placed using the machine
address not the physical address. This is because it represents
an area of memory that is reserved in the hypervisor and it is
critical that the same area of machine memory is not trampled
over during kexec.

Signed-off-by: Simon Horman <horms@verge.net.au>

--- 
Date: Tue, 25 Sep 2007 18:05:03 +0900
From: Horms <horms@verge.net.au>

Note that in the case of CONFIG_XEN, kexec_virt_to_phys is defined in
include/asm-ia64/kexec.h, otherwise it will fall back to
the definition on include/linux/kexec.h (which is already merged).

Index: x/arch/ia64/kernel/setup.c
===================================================================
--- x/arch/ia64/kernel/setup.c	2007-05-16 18:26:30.000000000 +0900
+++ x/arch/ia64/kernel/setup.c	2007-05-16 18:26:37.000000000 +0900
@@ -340,7 +340,7 @@ reserve_memory (void)
 		efi_memmap_res.start = ia64_boot_param->efi_memmap;
                 efi_memmap_res.end = efi_memmap_res.start +
                         ia64_boot_param->efi_memmap_size;
-                boot_param_res.start = __pa(ia64_boot_param);
+                boot_param_res.start = kexec_virt_to_phys(ia64_boot_param);
                 boot_param_res.end = boot_param_res.start +
                         sizeof(*ia64_boot_param);
 	}
