This patch set has a dual purpose: introduce proper migration for the channel subsystem (css) and convert the migration of ccw devices to vmstate. The state of the css was only partially migrated by the virtio-ccw devices (was the only device type until recent), which was good enough for a while.
Since the new vmstate infrastructure is used also for handling the migration stream for legacy machines some bits are a bit convoluted: that is, if you see something convoluted there is a good chance the reason why is compatibility. Halil Pasic (10): s390x: add helper get_machine_class s390x: add css_migration_enabled to machine class s390x/css: add vmstate entities for css s390x/css: add vmstate macro for CcwDevice virtio-ccw: add vmstate entities for VirtioCcwDevice virtio-ccw: use vmstate way for config migration s390x/css: remove unused subch_dev_(load|save) s390x/css: add ORB to SubchDev s390x/css: turn on channel subsystem migration s390x/css: use SubchDev.orb hw/intc/s390_flic.c | 48 ++++ hw/s390x/ccw-device.c | 11 + hw/s390x/ccw-device.h | 4 + hw/s390x/css.c | 478 +++++++++++++++++++++++++------------ hw/s390x/s390-virtio-ccw.c | 58 +++-- hw/s390x/virtio-ccw.c | 164 +++++++------ include/hw/s390x/css.h | 17 +- include/hw/s390x/s390-virtio-ccw.h | 7 + include/hw/s390x/s390_flic.h | 5 + 9 files changed, 543 insertions(+), 249 deletions(-) -- 2.10.2