This one has to be fixed up to 's390x: vmstatify config migration for virtio-ccw' provided we want to achieve the same as 's390x/css: catch section mismatch on load' does.
Signed-off-by: Halil Pasic <pa...@linux.vnet.ibm.com> --- This is on tom of 's390x: vmstatify config migration for virtio-ccw' which ain't on top of 's390x/css: catch section mismatch on load' but on top of master. I kind of have a circular dependency here. This is why the series is RFC. Wanted to provide an usage example. Faked 'Re: ' so patchew does not try to apply this on top of current master. --- hw/s390x/css.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hw/s390x/css.c b/hw/s390x/css.c index 348129e1b2..de277d6a3d 100644 --- a/hw/s390x/css.c +++ b/hw/s390x/css.c @@ -134,6 +134,10 @@ static const VMStateDescription vmstate_sense_id = { static int subch_dev_post_load(void *opaque, int version_id); static void subch_dev_pre_save(void *opaque); +const char err_hint_devno[] = "Devno mismatch, tried to load wrong section!" + " Likely reason: some sequences of plug and unplug can break" + " migration for machine versions prior to 2.7 (known design flaw)."; + const VMStateDescription vmstate_subch_dev = { .name = "s390_subch_dev", .version_id = 1, @@ -144,7 +148,7 @@ const VMStateDescription vmstate_subch_dev = { VMSTATE_UINT8_EQUAL(cssid, SubchDev), VMSTATE_UINT8_EQUAL(ssid, SubchDev), VMSTATE_UINT16(migrated_schid, SubchDev), - VMSTATE_UINT16(devno, SubchDev), + VMSTATE_UINT16_EQUAL_HINT(devno, SubchDev, err_hint_devno), VMSTATE_BOOL(thinint_active, SubchDev), VMSTATE_STRUCT(curr_status, SubchDev, 0, vmstate_schib, SCHIB), VMSTATE_UINT8_ARRAY(sense_data, SubchDev, 32), -- 2.11.2