c2077e2c "pci: Adjust PCI config limit based on bus topology" introduced checking the availability of extended config space for PCI-E devices which are in a bus topology that doesn't permit extended config space access (e.g. under PCI-E to PCI then PCI to PCI-E bridges).
This caused some problems for the spapr para-virtual PCI bus which _does_ allow extended config space access, despite acting in most ways like a vanilla PCI bus. Greg Kurz has posted a proposed fix for that against qemu-4.0 - for easy reference I've included that as the first two patches of this series. The rest of the series simplfies both the PCI-E config space access and pci_bus_is_root() logic, using a new flags field on the PCI Bus instance. David Gibson (3): pcie: Remove redundant test in pcie_mmcfg_data_read() pci: Simplify pci_bus_is_root() pcie: Simplify pci_adjust_config_limit() Greg Kurz (2): pci: Allow PCI bus subtypes to support extended config space accesses spapr_pci: Fix extended config space accesses hw/pci-bridge/pci_expander_bridge.c | 6 ----- hw/pci/pci.c | 40 ++++++++++++++++++++++------- hw/pci/pci_host.c | 13 +++------- hw/pci/pcie_host.c | 5 ---- hw/ppc/spapr_pci.c | 20 ++++++++++++++- hw/virtio/virtio-pci.c | 1 + include/hw/pci/pci.h | 3 ++- include/hw/pci/pci_bus.h | 14 +++++++++- 8 files changed, 69 insertions(+), 33 deletions(-) -- 2.20.1