- Check that the memory location that we are trying to read is valid

- Remove the VMware hack
 - ACPI works on all tested VMs now (QEMU, VirtualBox, and VMware)
 - Just a resource code issue remains and prevents us from enabling ACPI by default

svn path=/trunk/; revision=46241
This commit is contained in:
Cameron Gutman
2010-03-17 08:48:57 +00:00
parent 82b8272584
commit 44b4c1e7d1
2 changed files with 4 additions and 11 deletions
@@ -592,7 +592,6 @@ AcpiTbParseRootTable (
UINT32 Length;
UINT8 *TableEntry;
ACPI_STATUS Status;
ACPI_TABLE_HEADER LocalHeader;
ACPI_FUNCTION_TRACE (TbParseRootTable);
@@ -647,14 +646,6 @@ AcpiTbParseRootTable (
AcpiTbPrintTableHeader (Address, Table);
AcpiTbCleanupTableHeader (&LocalHeader, Table);
if (strstr(LocalHeader.AslCompilerId, "VMW"))
{
ACPI_ERROR ((AE_INFO, "VMware detected; ACPI has been disabled\n"));
AcpiOsUnmapMemory (Table, sizeof (ACPI_TABLE_HEADER));
return_ACPI_STATUS (AE_ERROR);
}
/* Get the length of the full table, verify length and map entire table */
Length = Table->Length;
+4 -2
View File
@@ -466,7 +466,8 @@ AcpiOsReadPciConfiguration (
NTSTATUS Status;
PCI_SLOT_NUMBER slot;
if (Register == 0 || PciId->Device == 0)
if (Register == 0 || PciId->Device == 0 ||
Register + Width > PCI_COMMON_HDR_LENGTH)
return AE_ERROR;
slot.u.AsULONG = 0;
@@ -498,7 +499,8 @@ AcpiOsWritePciConfiguration (
ULONG buf = Value;
PCI_SLOT_NUMBER slot;
if (Register == 0 || PciId->Device == 0)
if (Register == 0 || PciId->Device == 0 ||
Register + Width > PCI_COMMON_HDR_LENGTH)
return AE_ERROR;
slot.u.AsULONG = 0;