diff options
| -rw-r--r-- | arch/s390/kvm/sigp.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/s390/kvm/sigp.c b/arch/s390/kvm/sigp.c index 170392687ce0..2a01b9e02801 100644 --- a/arch/s390/kvm/sigp.c +++ b/arch/s390/kvm/sigp.c | |||
| @@ -237,6 +237,11 @@ int kvm_s390_handle_sigp(struct kvm_vcpu *vcpu) | |||
| 237 | u8 order_code; | 237 | u8 order_code; |
| 238 | int rc; | 238 | int rc; |
| 239 | 239 | ||
| 240 | /* sigp in userspace can exit */ | ||
| 241 | if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE) | ||
| 242 | return kvm_s390_inject_program_int(vcpu, | ||
| 243 | PGM_PRIVILEGED_OPERATION); | ||
| 244 | |||
| 240 | order_code = disp2; | 245 | order_code = disp2; |
| 241 | if (base2) | 246 | if (base2) |
| 242 | order_code += vcpu->arch.guest_gprs[base2]; | 247 | order_code += vcpu->arch.guest_gprs[base2]; |
