aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/kernel
diff options
context:
space:
mode:
authorTony Luck <tony.luck@intel.com>2007-03-07 16:13:25 -0800
committerTony Luck <tony.luck@intel.com>2007-03-07 16:13:25 -0800
commite55fdf11f3029bcd41b1b9547ad9db12c27eea76 (patch)
treee2bc7103b33e5a0505e3b3ca947990d47d04f350 /arch/ia64/kernel
parente253eb0c082e71082cc980a0c81582c2bc734605 (diff)
downloadkernel_samsung_smdk4412-e55fdf11f3029bcd41b1b9547ad9db12c27eea76.tar.gz
kernel_samsung_smdk4412-e55fdf11f3029bcd41b1b9547ad9db12c27eea76.tar.bz2
kernel_samsung_smdk4412-e55fdf11f3029bcd41b1b9547ad9db12c27eea76.zip
[IA64] Pick highest possible saved_max_pfn for crash_dump
Berhhard Walle noted that on his HP rx8640 he ended up with saved_max_pfn smaller than the highest address of system ram in /proc/iomem and proposed a patch to base the address on the unrounded and unfiltered EFI memory map address. Simon Horman and Magnus Damm suggested that the whole test be moved earlier in the function. This is the combination of both of these patches. Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/kernel')
-rw-r--r--arch/ia64/kernel/efi.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c
index 4061593e5b1..49b93682c75 100644
--- a/arch/ia64/kernel/efi.c
+++ b/arch/ia64/kernel/efi.c
@@ -971,6 +971,11 @@ efi_memmap_init(unsigned long *s, unsigned long *e)
if (!is_memory_available(md))
continue;
+#ifdef CONFIG_CRASH_DUMP
+ /* saved_max_pfn should ignore max_addr= command line arg */
+ if (saved_max_pfn < (efi_md_end(md) >> PAGE_SHIFT))
+ saved_max_pfn = (efi_md_end(md) >> PAGE_SHIFT);
+#endif
/*
* Round ends inward to granule boundaries
* Give trimmings to uncached allocator
@@ -1010,11 +1015,6 @@ efi_memmap_init(unsigned long *s, unsigned long *e)
} else
ae = efi_md_end(md);
-#ifdef CONFIG_CRASH_DUMP
- /* saved_max_pfn should ignore max_addr= command line arg */
- if (saved_max_pfn < (ae >> PAGE_SHIFT))
- saved_max_pfn = (ae >> PAGE_SHIFT);
-#endif
/* keep within max_addr= and min_addr= command line arg */
as = max(as, min_addr);
ae = min(ae, max_addr);