diff options
author | Bernhard Walle <bwalle@suse.de> | 2008-06-08 09:46:31 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-08 05:49:52 -0400 |
commit | 46f68e1c6b04a04772e828ff3bcd07ed708805c2 (patch) | |
tree | eaf1c848a714fd386ad1d1bd4d0a520821da296e /arch/x86/kernel/setup_64.c | |
parent | 3fd052b1b46ac23a2316283a996fe6c32dbcf132 (diff) |
x86: use reserve_bootmem_generic() to reserve crashkernel memory on x86_64
This patch uses reserve_bootmem_generic() instead of reserve_bootmem()
to reserve the crashkernel memory on x86_64. That's necessary for NUMA
machines, see 00212fef814612245ed0261cbac8426d0c9a31a5:
[PATCH] Fix kdump Crash Kernel boot memory reservation for NUMA machines
This patch will fix a boot memory reservation bug that trashes memory on
the ES7000 when loading the kdump crash kernel.
The code in arch/x86_64/kernel/setup.c to reserve boot memory for the crash
kernel uses the non-numa aware "reserve_bootmem" function instead of the
NUMA aware "reserve_bootmem_generic". I checked to make sure that no other
function was using "reserve_bootmem" and found none, except the ones that
had NUMA ifdef'ed out.
I have tested this patch only on an ES7000 with NUMA on and off (numa=off)
in a single (non-NUMA) and multi-cell (NUMA) configurations.
Signed-off-by: Amul Shah <amul.shah@unisys.com>
Looks-good-to: Vivek Goyal <vgoyal@in.ibm.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
The switch-back to reserve_bootmem() was accidentally introduced in
5c3391f9f749023a49c64d607da4fb49263690eb when adding the BOOTMEM_EXCLUSIVE
parameter.
Signed-off-by: Bernhard Walle <bwalle@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/setup_64.c')
-rw-r--r-- | arch/x86/kernel/setup_64.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c index e8df64fad540..4a666cdccb68 100644 --- a/arch/x86/kernel/setup_64.c +++ b/arch/x86/kernel/setup_64.c | |||
@@ -243,7 +243,7 @@ static void __init reserve_crashkernel(void) | |||
243 | return; | 243 | return; |
244 | } | 244 | } |
245 | 245 | ||
246 | if (reserve_bootmem(crash_base, crash_size, | 246 | if (reserve_bootmem_generic(crash_base, crash_size, |
247 | BOOTMEM_EXCLUSIVE) < 0) { | 247 | BOOTMEM_EXCLUSIVE) < 0) { |
248 | printk(KERN_INFO "crashkernel reservation failed - " | 248 | printk(KERN_INFO "crashkernel reservation failed - " |
249 | "memory is in use\n"); | 249 | "memory is in use\n"); |