linux_dsm_epyc7002/drivers/pci/controller
Thomas Petazzoni 95375f2ab2 PCI: mvebu: Fix PCI I/O mapping creation sequence
Commit ee1604381a ("PCI: mvebu: Only remap I/O space if configured") had
the side effect that the PCI I/O mapping was created much earlier than
before, at a point where the probe() of the driver could still fail. This
is for example a problem if one gets an -EPROBE_DEFER at some point during
probe(), after pci_ioremap_io() has been called.

Indeed, there is currently no function to undo what pci_ioremap_io() did,
and switching to pci_remap_iospace() is not an option in pci-mvebu due to
the need for special memory attributes on Armada 38x.

Reverting ee1604381a ("PCI: mvebu: Only remap I/O space if configured")
would be a possibility, but it would require also reverting 42342073e3
("PCI: mvebu: Convert to use pci_host_bridge directly"). So instead, we use
an open-coded version of pci_host_probe() that creates the PCI I/O mapping
at a point where we are guaranteed not to fail anymore.

Fixes: ee1604381a ("PCI: mvebu: Only remap I/O space if configured")
Reported-by: Jan Kundrát <jan.kundrat@cesnet.cz>
Tested-by: Jan Kundrát <jan.kundrat@cesnet.cz>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
2018-10-01 15:42:09 -05:00
..
dwc PCI: dwc: Fix scheduling while atomic issues 2018-09-20 16:36:20 -05:00
Kconfig Merge branch 'remotes/lorenzo/pci/mobiveil' 2018-08-15 14:59:14 -05:00
Makefile PCI: mobiveil: Add Kconfig/Makefile entries 2018-07-30 14:30:16 +01:00
pci-aardvark.c Merge branch 'remotes/lorenzo/pci/aardvark' 2018-08-15 14:59:09 -05:00
pci-ftpci100.c PCI: faraday: Fix I/O space page leak 2018-07-18 17:01:14 -05:00
pci-host-common.c
pci-host-generic.c
pci-hyperv.c pci-v4.19-changes 2018-08-16 09:21:54 -07:00
pci-mvebu.c PCI: mvebu: Fix PCI I/O mapping creation sequence 2018-10-01 15:42:09 -05:00
pci-rcar-gen2.c
pci-tegra.c
pci-thunder-ecam.c
pci-thunder-pem.c
pci-v3-semi.c PCI: v3-semi: Fix I/O space page leak 2018-07-18 17:02:13 -05:00
pci-versatile.c PCI: versatile: Fix I/O space page leak 2018-07-18 17:00:11 -05:00
pci-xgene-msi.c
pci-xgene.c PCI: xgene: Fix I/O space page leak 2018-07-18 16:59:40 -05:00
pcie-altera-msi.c
pcie-altera.c
pcie-cadence-ep.c Merge branch 'remotes/lorenzo/pci/dwc' 2018-08-15 14:59:11 -05:00
pcie-cadence-host.c PCI: cadence: Add shutdown callback to host driver 2018-07-12 12:46:41 +01:00
pcie-cadence.c PCI: cadence: Add Power Management ops for host and EP 2018-07-12 12:44:14 +01:00
pcie-cadence.h PCI: cadence: Add Power Management ops for host and EP 2018-07-12 12:44:14 +01:00
pcie-iproc-bcma.c
pcie-iproc-msi.c
pcie-iproc-platform.c
pcie-iproc.c PCI: iproc: Reduce inbound/outbound mapping print level 2018-07-13 11:59:21 +01:00
pcie-iproc.h PCI: iproc: Reject unconfigured physical functions from PAXC 2018-07-13 11:56:55 +01:00
pcie-mediatek.c PCI: mediatek: Fix I/O space page leak 2018-07-18 17:01:36 -05:00
pcie-mobiveil.c PCI: mobiveil: Add missing ../pci.h include 2018-07-30 14:30:12 +01:00
pcie-rcar.c PCI: rcar: Clean up PHY init on failure 2018-06-29 13:48:54 -05:00
pcie-rockchip-ep.c PCI: Update xxx_pcie_ep_raise_irq() and pci_epc_raise_irq() signatures 2018-07-19 11:34:42 +01:00
pcie-rockchip-host.c
pcie-rockchip.c
pcie-rockchip.h
pcie-tango.c
pcie-xilinx-nwl.c PCI: xilinx-nwl: Add missing of_node_put() 2018-06-29 13:50:10 -05:00
pcie-xilinx.c PCI: xilinx: Add missing of_node_put() 2018-06-29 13:49:54 -05:00
vmd.c PCI: vmd: White list for fast interrupt handlers 2018-06-28 17:25:33 +01:00