Commit 05c8545f authored by Venkatesh Pallipadi's avatar Venkatesh Pallipadi Committed by Linus Torvalds

[PATCH] Improper mapping of ACPI-HPET table

Early ACPI table parse for HPET tables has a bug, where in it
does not do proper set_fixmap for ACPI-HPET table.

This bug was lost in oversight, and was not noticed during
my testing too, as the ACPI-HPET table on all my test
systems happened to be in 1st Gig of memory (where __va()
will do the job).
parent fa974fca
...@@ -304,7 +304,14 @@ static int __init acpi_parse_hpet(unsigned long phys, unsigned long size) ...@@ -304,7 +304,14 @@ static int __init acpi_parse_hpet(unsigned long phys, unsigned long size)
{ {
struct acpi_table_hpet *hpet_tbl; struct acpi_table_hpet *hpet_tbl;
hpet_tbl = __va(phys); if (!phys || !size)
return -EINVAL;
hpet_tbl = (struct acpi_table_hpet *) __acpi_map_table(phys, size);
if (!hpet_tbl) {
printk(KERN_WARNING PREFIX "Unable to map HPET\n");
return -ENODEV;
}
if (hpet_tbl->addr.space_id != ACPI_SPACE_MEM) { if (hpet_tbl->addr.space_id != ACPI_SPACE_MEM) {
printk(KERN_WARNING PREFIX "HPET timers must be located in " printk(KERN_WARNING PREFIX "HPET timers must be located in "
......
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