Commit ec7353a1 authored by Cornelia Huck's avatar Cornelia Huck
Browse files

css: mss/mcss-e vs. migration



Our main channel_subsys structure is not a device (yet), but we need
to setup mss/mcss-e again if the guest had enabled it before. Use
a hack that should catch most configurations (assuming that the guest
will have enabled at least one device in higher subchannel sets or
channel subsystems if it enabled the functionality.)

Signed-off-by: default avatarCornelia Huck <cornelia.huck@de.ibm.com>
parent fa8b0ca5
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -1464,6 +1464,21 @@ int subch_device_load(SubchDev *s, QEMUFile *f)
    }
    s->ccw_fmt_1 = qemu_get_byte(f);
    s->ccw_no_data_cnt = qemu_get_byte(f);
    /*
     * Hack alert. We don't migrate the channel subsystem status (no
     * device!), but we need to find out if the guest enabled mss/mcss-e.
     * If the subchannel is enabled, it certainly was able to access it,
     * so adjust the max_ssid/max_cssid values for relevant ssid/cssid
     * values. This is not watertight, but better than nothing.
     */
    if (s->curr_status.pmcw.flags & PMCW_FLAGS_MASK_ENA) {
        if (s->ssid) {
            channel_subsys->max_ssid = MAX_SSID;
        }
        if (s->cssid != channel_subsys->default_cssid) {
            channel_subsys->max_cssid = MAX_CSSID;
        }
    }
    return 0;
}