• Sam Bobroff's avatar
    powerpc/eeh: EEH for pSeries hot plug · b905f8cd
    Sam Bobroff authored
    On PowerNV and pSeries, devices currently acquire EEH support from
    several different places: Boot-time devices from eeh_probe_devices()
    and eeh_addr_cache_build(), Virtual Function devices from the pcibios
    bus add device hooks and hot plugged devices from pci_hp_add_devices()
    (with other platforms using other methods as well).  Unfortunately,
    pSeries machines currently discover hot plugged devices using
    pci_rescan_bus(), not pci_hp_add_devices(), and so those devices do
    not receive EEH support.
    
    Rather than adding another case for pci_rescan_bus(), this change
    widens the scope of the pcibios bus add device hooks so that they can
    handle all devices. As a side effect this also supports devices
    discovered after manually rescanning via /sys/bus/pci/rescan.
    
    Note that on PowerNV, this change allows the EEH subsystem to become
    enabled after boot as long as it has not been forced off, which was
    not previously possible (it was already possible on pSeries).
    Signed-off-by: default avatarSam Bobroff <sbobroff@linux.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/72ae8ae9c54097158894a52de23690448de38ea9.1565930772.git.sbobroff@linux.ibm.com
    b905f8cd
eeh.c 49.8 KB