Port-xen archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Dom0: ACPI panic



On Thursday 06 September 2007 12:06:19 Quentin Garnier wrote:
> On Thu, Sep 06, 2007 at 11:51:03AM +0200, Christoph Egger wrote:
> > AcpiTbGetTableHeader() reads the ACPI Header from the BIOS
> > which contains the wrong Header->Length value.
> > => buggy BIOS
> >
> > The attached patch adds a sanity check. I don't know, if AE_LIMIT is the
> > correct error code, but NetBSD/Xen now boots on this machine.
>
> I don't see how the test can succeed in the normal case.

oh, damn! I should have tested this on a different machine first, where
the BIOS value is correct. New version of the patch attached.

Christoph
Index: tbget.c
===================================================================
RCS file: /cvsroot/src/sys/dist/acpica/tbget.c,v
retrieving revision 1.1
diff -u -p -r1.1 tbget.c
--- tbget.c     23 Mar 2006 13:36:31 -0000      1.1
+++ tbget.c     6 Sep 2007 11:04:32 -0000
@@ -251,6 +251,12 @@ AcpiTbGetTableHeader (
 
         ACPI_MEMCPY (ReturnHeader, Header, sizeof (ACPI_TABLE_HEADER));
         AcpiOsUnmapMemory (Header, sizeof (ACPI_TABLE_HEADER));
+
+        if ((Address->Pointer.Physical + ReturnHeader->Length) <=
+           Address->Pointer.Physical)
+        {
+            return_ACPI_STATUS (AE_LIMIT);
+        }
         break;
 
 


Home | Main Index | Thread Index | Old Index