Until 67915de9f0383ccf4a ("s390x/event-facility: variable-length event masks") we only supported 32bit sclp event masks, even though the archiecture allows the guests to set up sclp event masks up to 1021 bytes in length. With that patch the behaviour was almost compliant, but some issues were still remaining, in particular regarding the handling of selective reads and migration.
This patchset fixes migration and the handling of selective reads, and puts in place the support for 64-bit sclp event masks internally. A new property of the sclp-event device switches between the 32bit masks and the compliant behaviour. The property is bound to the machine version, so older machines keep the old broken behaviour, allowing for migration, but the default is the compliant implementation. Fixes: 67915de9f0383ccf4a ("s390x/event-facility: variable-length event masks") Claudio Imbrenda (3): s390x/sclp: proper support of larger send and receive masks s390x/sclp: clean up sclp masks s390x/sclp: extend SCLP event masks to 64 bits hw/char/sclpconsole-lm.c | 4 +- hw/char/sclpconsole.c | 4 +- hw/s390x/event-facility.c | 147 +++++++++++++++++++++++++++++++------- hw/s390x/s390-virtio-ccw.c | 8 ++- hw/s390x/sclpcpu.c | 4 +- hw/s390x/sclpquiesce.c | 4 +- include/hw/s390x/event-facility.h | 22 +++--- 7 files changed, 149 insertions(+), 44 deletions(-) -- 2.7.4