diff options
author | Thomas Huth <thuth@linux.vnet.ibm.com> | 2013-06-20 15:22:00 (GMT) |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2013-06-20 21:31:15 (GMT) |
commit | f9f6bbc6991f2ba21bfaff90f4060f2df766ca20 (patch) | |
tree | fd1b12a5157a323358ec62046c454702dc781c15 /arch/s390 | |
parent | 208dd7567df471c7c47aa25b94569afc115de5f5 (diff) | |
download | linux-f9f6bbc6991f2ba21bfaff90f4060f2df766ca20.tar.xz |
KVM: s390: Privileged operation check for TPROT
TPROT is a privileged instruction and thus should generate a privileged
operation exception when the problem state bit is not cleared in the PSW.
Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/kvm/priv.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/s390/kvm/priv.c b/arch/s390/kvm/priv.c index a21e014..04dc4a1 100644 --- a/arch/s390/kvm/priv.c +++ b/arch/s390/kvm/priv.c @@ -596,6 +596,9 @@ static int handle_tprot(struct kvm_vcpu *vcpu) vcpu->stat.instruction_tprot++; + if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE) + return kvm_s390_inject_program_int(vcpu, PGM_PRIVILEGED_OP); + kvm_s390_get_base_disp_sse(vcpu, &address1, &address2); /* we only handle the Linux memory detection case: |