aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTolentino, Matthew E <matthew.e.tolentino@intel.com>2006-03-26 04:37:09 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-26 11:56:54 -0500
commit23dd842c0033dbb05248c42929c3c526c55386de (patch)
tree997126ad81b01819094fb75ccb1a33c88ace6e17
parentb2c99e3c70d77fb194df5aa1642030080d28ea48 (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.c2
-rw-r--r--arch/i386/kernel/setup.c6
-rw-r--r--drivers/acpi/tables.c3
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
1058free_available_memory(unsigned long start, unsigned long end, void *arg) 1058free_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;