aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/setup.c
diff options
context:
space:
mode:
authorBernhard Walle <bwalle@suse.de>2008-07-18 13:07:53 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-18 17:35:46 -0400
commit91467bdf6e53058af13fd255375d6634ba0c70e0 (patch)
tree267f33c8455bb2bd2c2fdbe39259fafd0e1d567b /arch/x86/kernel/setup.c
parent5b664cb235e97afbf34db9c4d77f08ebd725335e (diff)
x86: move dma32_reserve_bootmem() after reserve_crashkernel()
On a x86-64 machine (nothing special I could encounter) I had the problem that crashkernel reservation with the usual "64M@16M" failed. While debugging that, I encountered that dma32_reserve_bootmem() reserves a memory region which is in that area. Because dma32_reserve_bootmem() does not rely on a specific offset but crashkernel does, it makes sense to move the dma32_reserve_bootmem() reservation down a bit. I tested that patch and it works without problems. I don't see any negative effects of that move, but maybe I oversaw something ... While we strictly don't need that patch in 2.6.27 because we have the automatic, dynamic offset detection, it makes sense to also include it here because: - it's easier to get it in -stable then, - many people are still used to the 'crashkernel=...@16M' syntax, - not everybody may be using a reloatable kernel. Signed-off-by: Bernhard Walle <bwalle@suse.de> Cc: kexec@lists.infradead.org Cc: vgoyal@redhat.com Cc: akpm@linux-foundation.org Cc: Bernhard Walle <bwalle@suse.de> Cc: yhlu.kernel@gmail.com Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/setup.c')
-rw-r--r--arch/x86/kernel/setup.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 531b55b8e81a..74d110ef2690 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -792,10 +792,6 @@ void __init setup_arch(char **cmdline_p)
792 792
793 initmem_init(0, max_pfn); 793 initmem_init(0, max_pfn);
794 794
795#ifdef CONFIG_X86_64
796 dma32_reserve_bootmem();
797#endif
798
799#ifdef CONFIG_ACPI_SLEEP 795#ifdef CONFIG_ACPI_SLEEP
800 /* 796 /*
801 * Reserve low memory region for sleep support. 797 * Reserve low memory region for sleep support.
@@ -810,6 +806,15 @@ void __init setup_arch(char **cmdline_p)
810#endif 806#endif
811 reserve_crashkernel(); 807 reserve_crashkernel();
812 808
809#ifdef CONFIG_X86_64
810 /*
811 * dma32_reserve_bootmem() allocates bootmem which may conflict
812 * with the crashkernel command line, so do that after
813 * reserve_crashkernel()
814 */
815 dma32_reserve_bootmem();
816#endif
817
813 reserve_ibft_region(); 818 reserve_ibft_region();
814 819
815#ifdef CONFIG_KVM_CLOCK 820#ifdef CONFIG_KVM_CLOCK