• Benjamin Herrenschmidt's avatar
    powerpc/powernv/pci: Work around races in PCI bridge enabling · db217319
    Benjamin Herrenschmidt authored
    The generic code is racy when multiple children of a PCI bridge try to
    enable it simultaneously.
    
    This leads to drivers trying to access a device through a
    not-yet-enabled bridge, and this EEH errors under various
    circumstances when using parallel driver probing.
    
    There is work going on to fix that properly in the PCI core but it
    will take some time.
    
    x86 gets away with it because (outside of hotplug), the BIOS enables
    all the bridges at boot time.
    
    This patch does the same thing on powernv by enabling all bridges that
    have child devices at boot time, thus avoiding subsequent races. It's
    suitable for backporting to stable and distros, while the proper PCI
    fix will probably be significantly more invasive.
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    db217319
pci-ioda.c 108 KB