[PATCH] EFI: keep physical table addresses in efi structure
commitb2c99e3c70d77fb194df5aa1642030080d28ea48
authorBjorn Helgaas <bjorn.helgaas@hp.com>
Sun, 26 Mar 2006 09:37:08 +0000 (26 01:37 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sun, 26 Mar 2006 16:56:54 +0000 (26 08:56 -0800)
tree65f2a173e49b3e15e90b8cabf45b7dd4f3691e29
parent27d8e3d15bcf9d7cd99bf6ca910ea9e34328c7fb
[PATCH] EFI: keep physical table addresses in efi structure

Almost all users of the table addresses from the EFI system table want
physical addresses.  So rather than doing the pa->va->pa conversion, just keep
physical addresses in struct efi.

This fixes a DMI bug: the efi structure contained the physical SMBIOS address
on x86 but the virtual address on ia64, so dmi_scan_machine() used ioremap()
on a virtual address on ia64.

This is essentially the same as an earlier patch by Matt Tolentino:
http://marc.theaimsgroup.com/?l=linux-kernel&m=112130292316281&w=2
except that this changes all table addresses, not just ACPI addresses.

Matt's original patch was backed out because it caused MCAs on HP sx1000
systems.  That problem is resolved by the ioremap() attribute checking added
for ia64.

Signed-off-by: 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>
Acked-by: "Luck, Tony" <tony.luck@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
12 files changed:
arch/i386/kernel/acpi/boot.c
arch/i386/kernel/dmi_scan.c
arch/i386/kernel/efi.c
arch/ia64/kernel/acpi.c
arch/ia64/kernel/efi.c
arch/ia64/kernel/setup.c
arch/ia64/sn/kernel/setup.c
drivers/acpi/osl.c
drivers/firmware/efivars.c
drivers/firmware/pcdp.c
include/asm-ia64/sn/sn_sal.h
include/linux/efi.h