Commit f094a39c authored by Christian Borntraeger's avatar Christian Borntraeger Committed by Heiko Carstens
Browse files

s390/nmi: handle vector validity failures for KVM guests



The machine check validity bit tells about the context. If a KVM guest
was running the bit tells about the guest validity and the host state is
not affected. As a guest can disable the guest validity this might
result in unwanted host errors on machine checks.

Cc: stable@vger.kernel.org
Fixes: c929500d ("s390/nmi: s390: New low level handling for machine check happening in guest")
Signed-off-by: default avatarChristian Borntraeger <borntraeger@linux.ibm.com>
Reviewed-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
parent 1ea1d6a8
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -264,7 +264,14 @@ static int notrace s390_validate_registers(union mci mci, int umode)
		/* Validate vector registers */
		union ctlreg0 cr0;

		if (!mci.vr) {
		/*
		 * The vector validity must only be checked if not running a
		 * KVM guest. For KVM guests the machine check is forwarded by
		 * KVM and it is the responsibility of the guest to take
		 * appropriate actions. The host vector or FPU values have been
		 * saved by KVM and will be restored by KVM.
		 */
		if (!mci.vr && !test_cpu_flag(CIF_MCCK_GUEST)) {
			/*
			 * Vector registers can't be restored. If the kernel
			 * currently uses vector registers the system is