[patch] [PATCH] Use BOOTMEM_EXCLUSIVE for i386

Bernhard Walle bwalle at suse.de
Sun Jun 8 10:16:07 EDT 2008


This patch uses the BOOTMEM_EXCLUSIVE for crashkernel reservation also for i386
and prints a error message on failure.

The patch is still for 2.6.26 since it is only bug fixing. The unification of
reserve_crashkernel() between i386 and x86_64 should be done for 2.6.27.



Signed-off-by: Bernhard Walle <bwalle at suse.de>

---
 arch/x86/kernel/setup_32.c |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

--- a/arch/x86/kernel/setup_32.c
+++ b/arch/x86/kernel/setup_32.c
@@ -532,10 +532,16 @@ static void __init reserve_crashkernel(v
 					(unsigned long)(crash_size >> 20),
 					(unsigned long)(crash_base >> 20),
 					(unsigned long)(total_mem >> 20));
+
+			if (reserve_bootmem(crash_base, crash_size,
+					BOOTMEM_EXCLUSIVE) < 0) {
+				printk(KERN_INFO "crashkernel reservation "
+					"failed - memory is in use\n");
+				return;
+			}
+
 			crashk_res.start = crash_base;
 			crashk_res.end   = crash_base + crash_size - 1;
-			reserve_bootmem(crash_base, crash_size,
-					BOOTMEM_DEFAULT);
 		} else
 			printk(KERN_INFO "crashkernel reservation failed - "
 					"you have to specify a base address\n");



More information about the kexec mailing list