This sixth set of DRC cleanup patches is a complete rework of DRC state management. We stop tracking some unnecessary things, and change the basic state representation to a simpler and more robust model.
Many of the patches in this set "break" migration from earlier git snapshots, but not from any released qemu version. The previous migration stream format had multiple problems, so better to fix them now, before 2.10 is out. Although there are certainly more things that can be improved in the DRC system, with this series we should have a solid foundation for migrating DRCs - the state trasferred is about as minimal and well defined as it's possible to be. Changes since v1: * Rebased onto current tree * Added cleanup to unplug path * Added restriction of DR-indicator to physical DRCs * Included revised version of Laurent's patch to correctly handle things "hot" plugged before incoming migration David Gibson (7): spapr: Remove 'awaiting_allocation' DRC flag spapr: Simplify unplug path spapr: Refactor spapr_drc_detach() spapr: Cleanups relating to DRC awaiting_release field spapr: Consolidate DRC state variables spapr: Remove sPAPRConfigureConnectorState sub-structure spapr: Implement DR-indicator for physical DRCs only Laurent Vivier (1): spapr: Treat devices added before inbound migration as coldplugged hw/ppc/spapr.c | 89 +++------- hw/ppc/spapr_drc.c | 399 ++++++++++++++++++++++++--------------------- hw/ppc/spapr_pci.c | 17 +- hw/ppc/trace-events | 3 +- include/hw/ppc/spapr_drc.h | 74 ++++++--- 5 files changed, 301 insertions(+), 281 deletions(-) -- 2.9.4