s390: kvm: adjust diag318 resets to retain data
commitc35aff184b2ed5be930da671ea25c857713555af
authorCollin Walling <walling@linux.ibm.com>
Wed, 17 Nov 2021 15:23:03 +0000 (17 10:23 -0500)
committerThomas Huth <thuth@redhat.com>
Fri, 17 Dec 2021 08:12:37 +0000 (17 09:12 +0100)
tree9aeb3d57964526db3b94d851ce868bd622421642
parent29eb5c2c86f935b0e9700fad2ecfe8a32b011d57
s390: kvm: adjust diag318 resets to retain data

The CPNC portion of the diag318 data is erroneously reset during an
initial CPU reset caused by SIGP. Let's go ahead and relocate the
diag318_info field within the CPUS390XState struct such that it is
only zeroed during a clear reset. This way, the CPNC will be retained
for each VCPU in the configuration after the diag318 instruction
has been invoked.

The s390_machine_reset code already takes care of zeroing the diag318
data on VM resets, which also cover resets caused by diag308.

Fixes: fabdada9357b ("s390: guest support for diagnose 0x318")
Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Collin Walling <walling@linux.ibm.com>
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Message-Id: <20211117152303.627969-1-walling@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
target/s390x/cpu.h
target/s390x/kvm/kvm.c