• Niklas Schnelle's avatar
    s390/pci: fix hot-plug of PCI function missing bus · 0b2ca2c7
    Niklas Schnelle authored
    Under some circumstances in particular with "Reconfigure I/O Path"
    a zPCI function may first appear in Standby through a PCI event with
    PEC 0x0302 which initially makes it visible to the zPCI subsystem,
    Only after that is it configured with a zPCI event  with PEC 0x0301.
    If the zbus is still missing a PCI function zero (devfn == 0) when the
    PCI event 0x0301 is handled zdev->zbus->bus is still NULL and gets
    dereferenced in common code.
    Check for this case and enable but don't scan the zPCI function.
    This matches what would happen if we immediately got the 0x0301
    configuration request or the function was included in CLP List PCI.
    In all cases the PCI functions with devfn != 0 will be scanned once
    function 0 appears.
    
    Fixes: 3047766b ("s390/pci: fix enabling a reserved PCI function")
    Cc: <stable@vger.kernel.org> # 5.8
    Signed-off-by: default avatarNiklas Schnelle <schnelle@linux.ibm.com>
    Acked-by: default avatarPierre Morel <pmorel@linux.ibm.com>
    Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
    0b2ca2c7
pci_event.c 3.94 KB