KVM: s390: Fix user triggerable bug in dead code
In the early days, we had some special handling for the
KVM_EXIT_S390_SIEIC exit, but this was gone in 2009 with commit
d7b0b5eb30
(KVM: s390: Make psw available on all exits, not
just a subset).
Now this switch statement is just a sanity check for userspace
not messing with the kvm_run structure. Unfortunately, this
allows userspace to trigger a kernel BUG. Let's just remove
this switch statement.
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Cc: stable@vger.kernel.org
hifive-unleashed-5.1
parent
7d1311b93e
commit
614a80e474
|
@ -1317,19 +1317,6 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (kvm_run->exit_reason) {
|
|
||||||
case KVM_EXIT_S390_SIEIC:
|
|
||||||
case KVM_EXIT_UNKNOWN:
|
|
||||||
case KVM_EXIT_INTR:
|
|
||||||
case KVM_EXIT_S390_RESET:
|
|
||||||
case KVM_EXIT_S390_UCONTROL:
|
|
||||||
case KVM_EXIT_S390_TSCH:
|
|
||||||
case KVM_EXIT_DEBUG:
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
BUG();
|
|
||||||
}
|
|
||||||
|
|
||||||
vcpu->arch.sie_block->gpsw.mask = kvm_run->psw_mask;
|
vcpu->arch.sie_block->gpsw.mask = kvm_run->psw_mask;
|
||||||
vcpu->arch.sie_block->gpsw.addr = kvm_run->psw_addr;
|
vcpu->arch.sie_block->gpsw.addr = kvm_run->psw_addr;
|
||||||
if (kvm_run->kvm_dirty_regs & KVM_SYNC_PREFIX) {
|
if (kvm_run->kvm_dirty_regs & KVM_SYNC_PREFIX) {
|
||||||
|
|
Loading…
Reference in New Issue