|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] Re: cs 23453:4f4970d2848d beaks Win 7
+1
now the Devicemanager looks ok too.
Thanks and Greetings
Tobias
Am Donnerstag, 1. September 2011, 17:57:53 schrieb Christoph Egger:
> On 09/01/11 17:05, Ian Campbell wrote:
> > The issue with 23453:4f4970d2848d is that it uses madt_csum_addr and
> > madt_lapic0_addr to initialise bios_info before they have themselves
> > been initialised.
> >
> > But in xen-unstable.hg tip everything has moved around and the issue now
> > turns out to be that we clear the acpi_info struct _after_ we've setup
> > the madt_* fields. Ooops!
> >
> > Thanks for reporting.
> >
> > Cheers,
> > Ian.
>
> I successfully tested your patch with Windows 7 (both 32bit and 64bit).
> Windows 7 can initialize its CPUs and no longer crashes on shutdown.
> Thanks for fixing. Please apply the fix.
>
> Tested-and-acked-by: Christoph Egger <Christoph.Egger@xxxxxxx>
>
> Christoph
>
> > # HG changeset patch
> > # User Ian Campbell<ian.campbell@xxxxxxxxxx>
> > # Date 1314889401 -3600
> > # Node ID bb97bd46df6c6d8562759a964ebf6c31b6361a7a
> > # Parent 85b29185c9119ff9139596251d7bd13586853994
> > 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<ian.campbell@xxxxxxxxxx>
> > Reported-by: Christoph Egger<Christoph.Egger@xxxxxxx>
> >
> > diff -r 85b29185c911 -r bb97bd46df6c
> > tools/firmware/hvmloader/acpi/build.c ---
> > a/tools/firmware/hvmloader/acpi/build.c Thu Sep 01 09:39:25 2011 +0100
> > +++ b/tools/firmware/hvmloader/acpi/build.c Thu Sep 01 16:03:21 2011
> > +0100 @@ -277,6 +277,8 @@ void acpi_build_tables(unsigned int phys
> >
> > 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 phys
> >
> > 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);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|