Hello, It makes the class hierarchy much cleaner and removes duplicated code. As we are touching the location of the objects states, migration compatibility was checked and the following tests were performed under KVM :
qemu-3.0 (pseries-3.0) -> qemu-3.0 (pseries-3.0) OK qemu-3.0 (pseries-2.12) -> qemu-2.12 (pseries-2.12) OK qemu-3.0 (pseries-2.11) -> qemu-2.11 (pseries-2.11) OK qemu-3.0 (pseries-2.10) -> qemu-2.10 (pseries-2.10) OK qemu-3.0 (pseries-2.9) -> qemu-2.9 (pseries-2.9) OK qemu-3.0 (pseries-2.8) -> qemu-2.8 (pseries-2.8) OK qemu-3.0 (pseries-2.7) -> qemu-2.7 (pseries-2.7) FAIL and back : qemu-3.0 (pseries-3.0) <- qemu-3.0 (pseries-3.0) OK qemu-3.0 (pseries-2.12) <- qemu-2.12 (pseries-2.12) OK qemu-3.0 (pseries-2.11) <- qemu-2.11 (pseries-2.11) OK qemu-3.0 (pseries-2.10) <- qemu-2.10 (pseries-2.10) OK qemu-3.0 (pseries-2.9) <- qemu-2.9 (pseries-2.9) OK qemu-3.0 (pseries-2.8) <- qemu-2.8 (pseries-2.8) OK qemu-3.0 (pseries-2.7) <- qemu-2.7 (pseries-2.7) OK under TCG, same scenarios were run but up to 2.10 only, in which case the migration fails for other reasons. I wouldn't mind some extra cross checking from someone else. Thanks, C. Changes since v2: - split the patch in smaller units. The migration tests were not rerun because the code is very much the same. make check was run on each patch. Cédric Le Goater (5): ppc/xics: introduce a parent_realize in ICSStateClass ppc/xics: move the instance_init handler under the ics-base class ppx/xics: introduce a parent_reset in ICSStateClass ppc/xics: move the vmstate structures under the ics-base class ppc/xics: rework the ICS classes inheritance tree include/hw/ppc/xics.h | 4 +- hw/intc/xics.c | 164 ++++++++++++++++++++++++++++---------------------- hw/intc/xics_kvm.c | 46 +++++++------- hw/ppc/spapr.c | 2 +- 4 files changed, 121 insertions(+), 95 deletions(-) -- 2.13.6