diff -urNp linux-2.6.16-rc5/arch/i386/kernel/dmi_scan.c linux-2.6.16-rc5-efi/arch/i386/kernel/dmi_scan.c --- linux-2.6.16-rc5/arch/i386/kernel/dmi_scan.c 2006-03-10 07:02:38.000000000 -0500 +++ linux-2.6.16-rc5-efi/arch/i386/kernel/dmi_scan.c 2006-03-10 07:05:04.000000000 -0500 @@ -223,12 +223,11 @@ void __init dmi_scan_machine(void) * needed during early boot. This also means we can * iounmap the space when we're done with it. */ - p = ioremap(efi.smbios, 32); + p = dmi_ioremap(efi.smbios, 32); if (p == NULL) goto out; rc = dmi_present(p + 0x10); /* offset of _DMI_ string */ - iounmap(p); if (!rc) return; } diff -urNp linux-2.6.16-rc5/arch/i386/kernel/setup.c linux-2.6.16-rc5-efi/arch/i386/kernel/setup.c --- linux-2.6.16-rc5/arch/i386/kernel/setup.c 2006-03-10 07:02:38.000000000 -0500 +++ linux-2.6.16-rc5-efi/arch/i386/kernel/setup.c 2006-03-10 06:55:48.000000000 -0500 @@ -1050,10 +1050,10 @@ static int __init free_available_memory(unsigned long start, unsigned long end, void *arg) { /* check max_low_pfn */ - if (start >= ((max_low_pfn + 1) << PAGE_SHIFT)) + if (start >= (max_low_pfn << PAGE_SHIFT)) return 0; - if (end >= ((max_low_pfn + 1) << PAGE_SHIFT)) - end = (max_low_pfn + 1) << PAGE_SHIFT; + if (end >= (max_low_pfn << PAGE_SHIFT)) + end = max_low_pfn << PAGE_SHIFT; if (start < end) free_bootmem(start, end - start); diff -urNp linux-2.6.16-rc5/drivers/acpi/tables.c linux-2.6.16-rc5-efi/drivers/acpi/tables.c --- linux-2.6.16-rc5/drivers/acpi/tables.c 2006-02-27 00:09:35.000000000 -0500 +++ linux-2.6.16-rc5-efi/drivers/acpi/tables.c 2006-03-10 04:37:18.000000000 -0500 @@ -587,7 +587,8 @@ int __init acpi_table_init(void) return -ENODEV; } - rsdp = (struct acpi_table_rsdp *)__va(rsdp_phys); + rsdp = (struct acpi_table_rsdp *)__acpi_map_table(rsdp_phys, + sizeof(struct acpi_table_rsdp)); if (!rsdp) { printk(KERN_WARNING PREFIX "Unable to map RSDP\n"); return -ENODEV;