Re: [PATCH] PCI: mvebu: Fix PCI I/O mapping creation sequence

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On pondělí 1. října 2018 14:49:34 CEST, Thomas Petazzoni wrote:
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.

Reported-by: Jan Kundrát <jan.kundrat@xxxxxxxxx>
Fixes: ee1604381a371 ("PCI: mvebu: Only remap I/O space if configured")
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxx>

Tested-by: Jan Kundrát <jan.kundrat@xxxxxxxxx>

Just a rebuild-and-boot test. We don't use any PCIe devices yet, but I'll grab an ugly eBay converter and try this patch with a normal PCIe card later.

Thanks!

Jan




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux