diff options
author | Tolentino, Matthew E <matthew.e.tolentino@intel.com> | 2006-03-26 04:37:09 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-26 11:56:54 -0500 |
commit | 23dd842c0033dbb05248c42929c3c526c55386de (patch) | |
tree | 997126ad81b01819094fb75ccb1a33c88ace6e17 | |
parent | b2c99e3c70d77fb194df5aa1642030080d28ea48 (diff) |
[PATCH] EFI fixes
Here's a patch that fixes EFI boot for x86 on 2.6.16-rc5-mm3. The
off-by-one is admittedly my fault, but the other two fix up the rest.
Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: Matt Domsch <Matt_Domsch@dell.com>
Cc: "Tolentino, Matthew E" <matthew.e.tolentino@intel.com>
Cc: "Brown, Len" <len.brown@intel.com>
Cc: Andi Kleen <ak@muc.de>
Cc: "Luck, Tony" <tony.luck@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | arch/i386/kernel/dmi_scan.c | 2 | ||||
-rw-r--r-- | arch/i386/kernel/setup.c | 6 | ||||
-rw-r--r-- | drivers/acpi/tables.c | 3 |
3 files changed, 6 insertions, 5 deletions
diff --git a/arch/i386/kernel/dmi_scan.c b/arch/i386/kernel/dmi_scan.c index 170d4c9f9bc3..5efceebc48dc 100644 --- a/arch/i386/kernel/dmi_scan.c +++ b/arch/i386/kernel/dmi_scan.c | |||
@@ -229,7 +229,7 @@ void __init dmi_scan_machine(void) | |||
229 | goto out; | 229 | goto out; |
230 | 230 | ||
231 | rc = dmi_present(p + 0x10); /* offset of _DMI_ string */ | 231 | rc = dmi_present(p + 0x10); /* offset of _DMI_ string */ |
232 | iounmap(p); | 232 | dmi_iounmap(p, 32); |
233 | if (!rc) | 233 | if (!rc) |
234 | return; | 234 | return; |
235 | } | 235 | } |
diff --git a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c index cec3c925ef99..6917daa159ab 100644 --- a/arch/i386/kernel/setup.c +++ b/arch/i386/kernel/setup.c | |||
@@ -1058,10 +1058,10 @@ static int __init | |||
1058 | free_available_memory(unsigned long start, unsigned long end, void *arg) | 1058 | free_available_memory(unsigned long start, unsigned long end, void *arg) |
1059 | { | 1059 | { |
1060 | /* check max_low_pfn */ | 1060 | /* check max_low_pfn */ |
1061 | if (start >= ((max_low_pfn + 1) << PAGE_SHIFT)) | 1061 | if (start >= (max_low_pfn << PAGE_SHIFT)) |
1062 | return 0; | 1062 | return 0; |
1063 | if (end >= ((max_low_pfn + 1) << PAGE_SHIFT)) | 1063 | if (end >= (max_low_pfn << PAGE_SHIFT)) |
1064 | end = (max_low_pfn + 1) << PAGE_SHIFT; | 1064 | end = max_low_pfn << PAGE_SHIFT; |
1065 | if (start < end) | 1065 | if (start < end) |
1066 | free_bootmem(start, end - start); | 1066 | free_bootmem(start, end - start); |
1067 | 1067 | ||
diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c index 31d4f3ffc265..7f37c7cc5ef1 100644 --- a/drivers/acpi/tables.c +++ b/drivers/acpi/tables.c | |||
@@ -587,7 +587,8 @@ int __init acpi_table_init(void) | |||
587 | return -ENODEV; | 587 | return -ENODEV; |
588 | } | 588 | } |
589 | 589 | ||
590 | rsdp = (struct acpi_table_rsdp *)__va(rsdp_phys); | 590 | rsdp = (struct acpi_table_rsdp *)__acpi_map_table(rsdp_phys, |
591 | sizeof(struct acpi_table_rsdp)); | ||
591 | if (!rsdp) { | 592 | if (!rsdp) { |
592 | printk(KERN_WARNING PREFIX "Unable to map RSDP\n"); | 593 | printk(KERN_WARNING PREFIX "Unable to map RSDP\n"); |
593 | return -ENODEV; | 594 | return -ENODEV; |