On 20.11.18 12:04, David Hildenbrand wrote: > This series reworks some pci hotplug handlers (except for s390, that will > require more work but is not required for now). > > 1. Route all unplug calls via the hotplug handler when called from the > unplug_request handler. This will be required to get multi-stage > hotplug handlers running, but also makes sense on its own (just like we > already did for some CPU/memory hotplug handlers). > > 2. Introduce some pre_plug handlers where it makes sense already. > > 3. Call the plug/pre_plug handler also for coldplugged devices. Especially > pcihp is special as it overwrites hotplug handlers. > > This series will not yet factor out pre_plug/plug/unplug from pci device > realize/unrealize functions, this will require more work but this > series is also required first to get it running. > > In my opinion what needs to be done in the future: > 1. Introduce pre_plug/plug/unplug_request/unplug handlers for all PCI > buses > 2. Move pci realize/unrealize parts to pre_plug/pkug/unplug functions like > pci_pre_plug() ... > 3. Call the pci pre_plug/plug/unplug handlers from the PCI bus hotplug > handler at the right spots > 4. Factor more checks from existing plug() handlers out into pre_plug() > (e.g. after the call to pci_pre_plug()) > > v2 -> v3: > - Added "pci: Reuse pci-bridge hotplug handler handlers for pcie-pci-bridge" > -- Use one handler callback for pcie and !pcie > - "pci/shpc: perform unplug via the hotplug handler" > -- Use one handler callback for pcie and !pcie > -- Replace error check by an assertion > - Minor description changes. > - Added Rbs > > v1 -> v2: > - Added "pci/pcie: rename hotplug handler callbacks" > - Added "pci/shpc: rename hotplug handler callbacks" > - Added "s390x/pci: rename hotplug handler callbacks" > - Dropped "pci/shpc: move hotplug checks to preplug handler" > -- We will have to factor out stuff into pre_plug() first as described > above > - Renamed and added more details to the "perform unplug via the hotplug > handler" patches > - "pci/pcihp: overwrite hotplug handler recursively from the start" > -- Perform the overwrite only for cold plugged bridges, to keep the > existing behavior > > David Hildenbrand (11): > pci/pcie: rename hotplug handler callbacks > pci/shpc: rename hotplug handler callbacks > s390x/pci: rename hotplug handler callbacks > pci/pcie: stop plug/unplug if the slot is locked > pci/pcihp: perform check for bus capability in pre_plug handler > pci/pcihp: overwrite hotplug handler recursively from the start > pci/pcihp: perform unplug via the hotplug handler > pci/pcie: perform unplug via the hotplug handler > pci: Reuse pci-bridge hotplug handler handlers for pcie-pci-bridge > pci/shpc: perform unplug via the hotplug handler > spapr_pci: perform unplug via the hotplug handler > > hw/acpi/pcihp.c | 47 ++++++++++++++++++++++++++++----- > hw/acpi/piix4.c | 39 ++++++++++++++------------- > hw/pci-bridge/pci_bridge_dev.c | 31 ++++++++++++++-------- > hw/pci-bridge/pcie_pci_bridge.c | 32 +++------------------- > hw/pci/pcie.c | 46 +++++++++++++++++++++----------- > hw/pci/pcie_port.c | 6 +++-- > hw/pci/shpc.c | 25 ++++++++++++------ > hw/ppc/spapr_pci.c | 33 ++++++++++++++--------- > hw/s390x/s390-pci-bus.c | 12 ++++----- > include/hw/acpi/pcihp.h | 5 ++++ > include/hw/pci/pci_bridge.h | 6 +++++ > include/hw/pci/pcie.h | 12 ++++++--- > include/hw/pci/shpc.h | 10 ++++--- > 13 files changed, 187 insertions(+), 117 deletions(-) >
Seems like everything is reviewed and this is good to go. Anybody fancy queuing this? (@mst?) Thanks! -- Thanks, David / dhildenb