aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeir Fraser <keir@xensource.com>2007-10-19 17:47:12 +0100
committerKeir Fraser <keir@xensource.com>2007-10-19 17:47:12 +0100
commitf475a034a7560a64416f9fde0f035b74ef3ac2ea (patch)
tree14fbdf94f0efbb083b86d25fe3673ffbd92f6767
parenta51497b069f4e29b95fe872ddd8d76a580bf5209 (diff)
downloadxen-f475a034a7560a64416f9fde0f035b74ef3ac2ea.tar.gz
xen-f475a034a7560a64416f9fde0f035b74ef3ac2ea.tar.bz2
xen-f475a034a7560a64416f9fde0f035b74ef3ac2ea.zip
Avoid passing uninitialised ACPI tables to dom0 when checksums fail.
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>
-rw-r--r--xen/arch/x86/setup.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index a9c1beeba8..47d81c4ada 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -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=");