Commit b825e6cc authored by Yinghai Lu's avatar Yinghai Lu Committed by Ingo Molnar

x86, es7000: fix ACPI table mappings

Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 7d97277b
...@@ -292,24 +292,31 @@ int __init find_unisys_acpi_oem_table(unsigned long *oem_addr) ...@@ -292,24 +292,31 @@ int __init find_unisys_acpi_oem_table(unsigned long *oem_addr)
{ {
struct acpi_table_header *header = NULL; struct acpi_table_header *header = NULL;
int i = 0; int i = 0;
acpi_size tbl_size;
while (ACPI_SUCCESS(acpi_get_table("OEM1", i++, &header))) { while (ACPI_SUCCESS(acpi_get_table_with_size("OEM1", i++, &header, &tbl_size))) {
if (!memcmp((char *) &header->oem_id, "UNISYS", 6)) { if (!memcmp((char *) &header->oem_id, "UNISYS", 6)) {
struct oem_table *t = (struct oem_table *)header; struct oem_table *t = (struct oem_table *)header;
oem_addrX = t->OEMTableAddr; oem_addrX = t->OEMTableAddr;
oem_size = t->OEMTableSize; oem_size = t->OEMTableSize;
early_acpi_os_unmap_memory(header, tbl_size);
*oem_addr = (unsigned long)__acpi_map_table(oem_addrX, *oem_addr = (unsigned long)__acpi_map_table(oem_addrX,
oem_size); oem_size);
return 0; return 0;
} }
early_acpi_os_unmap_memory(header, tbl_size);
} }
return -1; return -1;
} }
void __init unmap_unisys_acpi_oem_table(unsigned long oem_addr) void __init unmap_unisys_acpi_oem_table(unsigned long oem_addr)
{ {
if (!oem_addr)
return;
__acpi_unmap_table((char *)oem_addr, oem_size);
} }
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment