diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2020-05-06 14:09:17 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2020-05-06 14:09:17 +0200 |
commit | 2673cb6849722a4ffd74c27a9200a9ec43f64be3 (patch) | |
tree | 92318aa6661be398fb2a22ef91094f454fa72190 | |
parent | KVM: X86: Declare KVM_CAP_SET_GUEST_DEBUG properly (diff) | |
parent | KVM: s390: Remove false WARN_ON_ONCE for the PQAP instruction (diff) | |
download | linux-2673cb6849722a4ffd74c27a9200a9ec43f64be3.tar.xz linux-2673cb6849722a4ffd74c27a9200a9ec43f64be3.zip |
Merge tag 'kvm-s390-master-5.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD
KVM: s390: Fix for running nested uner z/VM
There are circumstances when running nested under z/VM that would trigger a
WARN_ON_ONCE. Remove the WARN_ON_ONCE. Long term we certainly want to make this
code more robust and flexible, but just returning instead of WARNING makes
guest bootable again.
-rw-r--r-- | arch/s390/kvm/priv.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/s390/kvm/priv.c b/arch/s390/kvm/priv.c index 69a824f9ef0b..893893642415 100644 --- a/arch/s390/kvm/priv.c +++ b/arch/s390/kvm/priv.c @@ -626,10 +626,12 @@ static int handle_pqap(struct kvm_vcpu *vcpu) * available for the guest are AQIC and TAPQ with the t bit set * since we do not set IC.3 (FIII) we currently will only intercept * the AQIC function code. + * Note: running nested under z/VM can result in intercepts for other + * function codes, e.g. PQAP(QCI). We do not support this and bail out. */ reg0 = vcpu->run->s.regs.gprs[0]; fc = (reg0 >> 24) & 0xff; - if (WARN_ON_ONCE(fc != 0x03)) + if (fc != 0x03) return -EOPNOTSUPP; /* PQAP instruction is allowed for guest kernel only */ |