Avoid passing uninitialised ACPI tables to dom0 when checksums fail.
authorKeir Fraser <keir@xensource.com>
Fri, 19 Oct 2007 16:47:12 +0000 (17:47 +0100)
committerKeir Fraser <keir@xensource.com>
Fri, 19 Oct 2007 16:47:12 +0000 (17:47 +0100)
If during boot, ACPI checksum failures disable ACPI support in Xen,
pass 'acpi=off' to the domain 0 kernel to avoid a fatal page fault
as domain 0 attempts to access the uninitialized ACPI tables.

Signed-off-by: David Lively <dlively@virtualiron.com>
Signed-off-by: Steve Ofsthun <sofsthun@virtualiron.com>
xen/arch/x86/setup.c

index a9c1beeba892cee79b1229177638a9f55a8cb061..47d81c4adaa14f4d5714bdc38168168d6de7a78b 100644 (file)
@@ -972,6 +972,11 @@ void __init __start_xen(unsigned long mbi_p)
         if ( acpi_skip_timer_override &&
              !strstr(dom0_cmdline, "acpi_skip_timer_override") )
             safe_strcat(dom0_cmdline, " acpi_skip_timer_override");
+        if ( (strlen(acpi_param) == 0) && acpi_disabled )
+        {
+            printk("ACPI is disabled, notifying Domain 0 (acpi=off)\n");
+            safe_strcpy(acpi_param, "off");
+        }
         if ( (strlen(acpi_param) != 0) && !strstr(dom0_cmdline, "acpi=") )
         {
             safe_strcat(dom0_cmdline, " acpi=");