diff options
author | Thomas Petazzoni <thomas.petazzoni@bootlin.com> | 2018-10-01 15:49:34 +0300 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2018-10-01 23:42:09 +0300 |
commit | 95375f2ab2960c135484d83ea9f8f357cb1be26a (patch) | |
tree | 353bdc9e437a696eb1f29ab34b01016544643ac7 /lib/Makefile | |
parent | 573bcd380921b5216b62dcd072ec426f5ecbeb9d (diff) | |
download | linux-95375f2ab2960c135484d83ea9f8f357cb1be26a.tar.xz |
PCI: mvebu: Fix PCI I/O mapping creation sequence
Commit ee1604381a371 ("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 ee1604381a371 ("PCI: mvebu: Only remap I/O space if configured")
would be a possibility, but it would require also reverting 42342073e38b5
("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: ee1604381a371 ("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>
Diffstat (limited to 'lib/Makefile')
0 files changed, 0 insertions, 0 deletions