]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
KVM: s390: Fix problem state handling in guest sigp handler
authorChristian Borntraeger <borntraeger@de.ibm.com>
Mon, 17 Nov 2008 13:50:35 +0000 (14:50 +0100)
committerAvi Kivity <avi@redhat.com>
Sun, 23 Nov 2008 12:34:39 +0000 (14:34 +0200)
We can get an exit for instructions starting with 0xae, even if the guest is
in userspace. Lets make sure, that the signal processor handler is only called
in guest supervisor mode. Otherwise, send a program check.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/s390/kvm/sigp.c

index 170392687ce042f64c69ea7f4fe85d863025b768..2a01b9e02801f14afd348162f31679237cbd340a 100644 (file)
@@ -237,6 +237,11 @@ int kvm_s390_handle_sigp(struct kvm_vcpu *vcpu)
        u8 order_code;
        int rc;
 
+       /* sigp in userspace can exit */
+       if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE)
+               return kvm_s390_inject_program_int(vcpu,
+                                                  PGM_PRIVILEGED_OPERATION);
+
        order_code = disp2;
        if (base2)
                order_code += vcpu->arch.guest_gprs[base2];