Hello, First patch moves the common ICS code the ICS_BASE class. It makes the class hierarchy much cleaner and removes duplicated code. Second patch simply introduces ICP DeviceRealize and DeviceReset handler.
As we are touching the location of the objects states, migration compatibilty needs to be checked. 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. Cédric Le Goater (2): ppc/xics: rework the ICS classes inheritance tree ppc/xics: introduce ICP DeviceRealize and DeviceReset handlers include/hw/ppc/xics.h | 9 ++- hw/intc/xics.c | 176 +++++++++++++++++++++++++++----------------------- hw/intc/xics_kvm.c | 81 ++++++++++++++--------- hw/intc/xics_pnv.c | 15 ++++- hw/ppc/spapr.c | 2 +- 5 files changed, 166 insertions(+), 117 deletions(-) -- 2.13.6