From: Bjorn Helgaas dmi_scan_machine() tries to ioremap 0x10000 (64K) bytes, even though it only looks at the first 32 bytes or so. If the SMBIOS table is near the end of a memory region, the ioremap() may fail when it shouldn't. This is in the efi_enabled path, so it really only affects ia64 at the moment. Signed-off-by: Bjorn Helgaas Cc: Matt Domsch Cc: "Tolentino, Matthew E" Cc: "Brown, Len" Cc: Andi Kleen Cc: "Luck, Tony" Signed-off-by: Andrew Morton --- arch/i386/kernel/dmi_scan.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN arch/i386/kernel/dmi_scan.c~dmi-only-ioremap-stuff-we-actually-need arch/i386/kernel/dmi_scan.c --- 25/arch/i386/kernel/dmi_scan.c~dmi-only-ioremap-stuff-we-actually-need Thu Jan 19 15:55:02 2006 +++ 25-akpm/arch/i386/kernel/dmi_scan.c Thu Jan 19 15:55:02 2006 @@ -223,7 +223,7 @@ 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((unsigned long)efi.smbios, 0x10000); + p = ioremap((unsigned long)efi.smbios, 32); if (p == NULL) goto out; _