From: Ian Campbell Date: Tue, 13 Sep 2011 09:22:03 +0000 (+0100) Subject: hvmloader: don't clear acpi_info after filling in some fields X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~9910 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=d7d24473958dcf740d2366cbc574cf671e390dcc;p=xen.git hvmloader: don't clear acpi_info after filling in some fields In particular the madt_lapic0_addr and madt_csum_addr fields are filled in while building the tables. This fixes a bluescreen on shutdown with certain versions of Windows. Signed-off-by: Ian Campbell Reported-by: Christoph Egger Tested-and-acked-by: Christoph Egger --- diff --git a/tools/firmware/hvmloader/acpi/build.c b/tools/firmware/hvmloader/acpi/build.c index 5e3198420b..e6c2556633 100644 --- a/tools/firmware/hvmloader/acpi/build.c +++ b/tools/firmware/hvmloader/acpi/build.c @@ -277,6 +277,8 @@ void acpi_build_tables(unsigned int physical) unsigned long secondary_tables[16]; int nr_secondaries, i; + memset(acpi_info, 0, sizeof(*acpi_info)); + /* * Fill in high-memory data structures, starting at @buf. */ @@ -375,7 +377,6 @@ void acpi_build_tables(unsigned int physical) offsetof(struct acpi_20_rsdp, extended_checksum), sizeof(struct acpi_20_rsdp)); - memset(acpi_info, 0, sizeof(*acpi_info)); acpi_info->com1_present = uart_exists(0x3f8); acpi_info->com2_present = uart_exists(0x2f8); acpi_info->lpt1_present = lpt_exists(0x378);