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 Acked-by: "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 --- devel/arch/i386/kernel/dmi_scan.c~dmi-only-ioremap-stuff-we-actually-need 2006-02-27 20:58:01.000000000 -0800 +++ devel-akpm/arch/i386/kernel/dmi_scan.c 2006-02-27 20:58:01.000000000 -0800 @@ -224,7 +224,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; _