s390/kvm: fix diag318 propagation and reset functionality
authorCollin Walling <walling@linux.ibm.com>
Fri, 13 Nov 2020 22:10:22 +0000 (17:10 -0500)
committerCornelia Huck <cohuck@redhat.com>
Wed, 18 Nov 2020 15:57:48 +0000 (16:57 +0100)
commite2c6cd567422bfa563be026b9741a1854aecdc06
treed7a10886fbbd0732ba14bb79ba56fc1ff2892d13
parentb696f2c6ba8c92ffb5eca49b88a5c7276d0a3e1e
s390/kvm: fix diag318 propagation and reset functionality

The Control Program Name Code (CPNC) portion of the diag318
info must be set within the SIE block of each VCPU in the
configuration. The handler will iterate through each VCPU
and dirty the diag318_info reg to be synced with KVM on a
subsequent sync_regs call.

Additionally, the diag318 info resets must be handled via
userspace. As such, QEMU will reset this value for each
VCPU during a modified clear, load normal, and load clear
reset event.

Fixes: fabdada9357b ("s390: guest support for diagnose 0x318")
Signed-off-by: Collin Walling <walling@linux.ibm.com>
Message-Id: <20201113221022.257054-1-walling@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Janosch Frank <frankja@de.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
hw/s390x/s390-virtio-ccw.c
target/s390x/cpu.c
target/s390x/cpu.h
target/s390x/kvm-stub.c
target/s390x/kvm.c
target/s390x/kvm_s390x.h