Skip to content

Commit

Permalink
x86/EISA: Use memremap() to probe for the EISA BIOS signature
Browse files Browse the repository at this point in the history
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 f7750a7 ("x86, mpparse, x86/acpi, x86/PCI, x86/dmi, SFI: Use
memremap() for RAM mappings") or commit 5997efb ("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
  • Loading branch information
maciej-w-rozycki authored and KAGA-KOKO committed Aug 25, 2024
1 parent 741fc1d commit 80a4da0
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions arch/x86/kernel/eisa.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

0 comments on commit 80a4da0

Please sign in to comment.