ACPI: tables: complete searching upon RSDP w/ bad checksum.
ACPI tables follow a tree structure in memory. The root of the tree is the RSDP (Root System Description Pointer). To find the RSDP, the OS searches for the signature "RSD PTR " in well known physical memory locations. Then the OS computes a table checksum to verify that the signature is really part of a valid table header. Some systems have a proper signature but an invalid checksum; followed elsewhere by a proper signature with valid checksum. http://bugzilla.kernel.org/show_bug.cgi?id=9444 The Linux RSDP scanning code bailed out on those systems and as a result they booted with ACPI disabled. Fix this by deleting the Linux RSDP scanning code and plugging in the ACPICA RSDP scanning code. Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
@@ -100,7 +100,7 @@ static acpi_status acpi_tb_validate_rsdp(struct acpi_table_rsdp *rsdp)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_tb_find_rsdp
|
||||
* FUNCTION: acpi_find_root_pointer
|
||||
*
|
||||
* PARAMETERS: table_address - Where the table pointer is returned
|
||||
*
|
||||
@@ -219,8 +219,6 @@ acpi_status acpi_find_root_pointer(acpi_native_uint * table_address)
|
||||
return_ACPI_STATUS(AE_NOT_FOUND);
|
||||
}
|
||||
|
||||
ACPI_EXPORT_SYMBOL(acpi_find_root_pointer)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_tb_scan_memory_for_rsdp
|
||||
|
Reference in New Issue
Block a user