diff options
author | Maciej W. Rozycki <macro@orcam.me.uk> | 2024-08-25 00:17:10 +0200 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2024-08-25 14:29:38 +0200 |
commit | 80a4da05642c384bc6f5b602b865ebd7e3963902 (patch) | |
tree | 139069590293794777442d20ae083e7e2f56073d /arch/x86/kernel/eisa.c | |
parent | x86/mtrr: Remove obsolete declaration for mtrr_bp_restore() (diff) | |
download | linux-80a4da05642c384bc6f5b602b865ebd7e3963902.tar.xz linux-80a4da05642c384bc6f5b602b865ebd7e3963902.zip |
x86/EISA: Use memremap() to probe for the EISA BIOS signature
The area at the 0x0FFFD9 physical location in the PC memory space is
regular memory, traditionally ROM BIOS and more recently a copy of BIOS
code and data in RAM, write-protected.
Therefore use memremap() to get access to it rather than ioremap(),
avoiding issues in virtualization scenarios and complementing changes such
as commit f7750a795687 ("x86, mpparse, x86/acpi, x86/PCI, x86/dmi, SFI: Use
memremap() for RAM mappings") or commit 5997efb96756 ("x86/boot: Use
memremap() to map the MPF and MPC data").
Reported-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/all/alpine.DEB.2.21.2408242025210.30766@angie.orcam.me.uk
Closes: https://lore.kernel.org/r/20240822095122.736522-1-kirill.shutemov@linux.intel.com
Diffstat (limited to 'arch/x86/kernel/eisa.c')
-rw-r--r-- | arch/x86/kernel/eisa.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/x86/kernel/eisa.c b/arch/x86/kernel/eisa.c index 53935b4d62e3..5a4f99a098bf 100644 --- a/arch/x86/kernel/eisa.c +++ b/arch/x86/kernel/eisa.c @@ -11,15 +11,15 @@ static __init int eisa_bus_probe(void) { - void __iomem *p; + void *p; if ((xen_pv_domain() && !xen_initial_domain()) || cc_platform_has(CC_ATTR_GUEST_SEV_SNP)) return 0; - p = ioremap(0x0FFFD9, 4); + p = memremap(0x0FFFD9, 4, MEMREMAP_WB); if (p && readl(p) == 'E' + ('I' << 8) + ('S' << 16) + ('A' << 24)) EISA_bus = 1; - iounmap(p); + memunmap(p); return 0; } subsys_initcall(eisa_bus_probe); |