x86, UV: Fix kdump reboot
authorCliff Wickman <cpw@sgi.com>
Thu, 31 Mar 2011 14:32:02 +0000 (09:32 -0500)
committerIngo Molnar <mingo@elte.hu>
Thu, 31 Mar 2011 16:44:03 +0000 (18:44 +0200)
After a crash dump on an SGI Altix UV system the crash kernel
fails to cause a reboot.  EFI mode is disabled in the kdump
kernel, so only the reboot_type of BOOT_ACPI works.

Signed-off-by: Cliff Wickman <cpw@sgi.com>
Cc: rja@sgi.com
LKML-Reference: <E1Q5Iuo-00013b-UK@eag09.americas.sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/apic/x2apic_uv_x.c

index d2cf39bc5ecfcba30d95f0da9a998546aa92098a..33b10a0fc095b9d458f851b20e4c5dda37cfc9ed 100644 (file)
@@ -24,6 +24,7 @@
 #include <linux/pci.h>
 #include <linux/kdebug.h>
 #include <linux/delay.h>
+#include <linux/crash_dump.h>
 
 #include <asm/uv/uv_mmrs.h>
 #include <asm/uv/uv_hub.h>
@@ -35,6 +36,7 @@
 #include <asm/ipi.h>
 #include <asm/smp.h>
 #include <asm/x86_init.h>
+#include <asm/emergency-restart.h>
 
 DEFINE_PER_CPU(int, x2apic_extra_bits);
 
@@ -811,4 +813,11 @@ void __init uv_system_init(void)
 
        /* register Legacy VGA I/O redirection handler */
        pci_register_set_vga_state(uv_set_vga_state);
+
+       /*
+        * For a kdump kernel the reset must be BOOT_ACPI, not BOOT_EFI, as
+        * EFI is not enabled in the kdump kernel.
+        */
+       if (is_kdump_kernel())
+               reboot_type = BOOT_ACPI;
 }