summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/eisa.c
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@orcam.me.uk>2024-08-25 00:17:10 +0200
committerThomas Gleixner <tglx@linutronix.de>2024-08-25 14:29:38 +0200
commit80a4da05642c384bc6f5b602b865ebd7e3963902 (patch)
tree139069590293794777442d20ae083e7e2f56073d /arch/x86/kernel/eisa.c
parentx86/mtrr: Remove obsolete declaration for mtrr_bp_restore() (diff)
downloadlinux-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.c6
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);