[PATCH 0/2] PCI: Fix extended config space regression

From: Bjorn Helgaas
Date: Tue Jan 10 2023 - 13:05:56 EST


From: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>

07eab0901ede ("efi/x86: Remove EfiMemoryMappedIO from E820 map") appeared
in v6.2-rc1 and broke extended config space on several machines.

This broke drivers that use things in extended config space, e.g., perf,
VSEC telemetry, EDAC, QAT, etc.

This happened because mmconfig-shared.c checks to see that ECAM space is
reserved in E820 or ACPI motherboard resources. If it's not, it assumes
ECAM doesn't work. 07eab0901ede removed some E820 entries, so it looked
like ECAM was no longer reserved, so we stopped using it.

The machines where this broke don't reserve the ECAM in ACPI PNP0C02
devices (which seems to be what the PCI Firmware spec requires), but they
do mention it in the EFI memory map as EfiMemoryMappedIO.

Bjorn Helgaas (2):
x86/pci: Simplify is_mmconf_reserved() messages
x86/pci: Treat EfiMemoryMappedIO as reservation of ECAM space

arch/x86/pci/mmconfig-shared.c | 44 +++++++++++++++++++++++++++++-----
1 file changed, 38 insertions(+), 6 deletions(-)

--
2.25.1