aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLongpeng(Mike) <longpeng2@huawei.com>2017-08-08 00:05:34 -0400
committerPaolo Bonzini <pbonzini@redhat.com>2017-08-08 04:57:43 -0400
commit0546c63d988d347fc734fc8c624692b30f95f633 (patch)
tree6d1cb8466a100256015a9177862e73e013ed403c
parentde63ad4cf4973462953c29c363f3cfa7117c2b2d (diff)
KVM: s390: implements the kvm_arch_vcpu_in_kernel()
This implements kvm_arch_vcpu_in_kernel() for s390. DIAG is a privileged operation, so it cannot be called from problem state (user mode). Signed-off-by: Longpeng(Mike) <longpeng2@huawei.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--arch/s390/kvm/diag.c2
-rw-r--r--arch/s390/kvm/kvm-s390.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/arch/s390/kvm/diag.c b/arch/s390/kvm/diag.c
index 6182edebea3d..5ee90020382d 100644
--- a/arch/s390/kvm/diag.c
+++ b/arch/s390/kvm/diag.c
@@ -150,7 +150,7 @@ static int __diag_time_slice_end(struct kvm_vcpu *vcpu)
150{ 150{
151 VCPU_EVENT(vcpu, 5, "%s", "diag time slice end"); 151 VCPU_EVENT(vcpu, 5, "%s", "diag time slice end");
152 vcpu->stat.diagnose_44++; 152 vcpu->stat.diagnose_44++;
153 kvm_vcpu_on_spin(vcpu, false); 153 kvm_vcpu_on_spin(vcpu, true);
154 return 0; 154 return 0;
155} 155}
156 156
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index 5e07322034b9..9f23a9e81a91 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -2449,7 +2449,7 @@ int kvm_arch_vcpu_runnable(struct kvm_vcpu *vcpu)
2449 2449
2450bool kvm_arch_vcpu_in_kernel(struct kvm_vcpu *vcpu) 2450bool kvm_arch_vcpu_in_kernel(struct kvm_vcpu *vcpu)
2451{ 2451{
2452 return false; 2452 return !(vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE);
2453} 2453}
2454 2454
2455void kvm_s390_vcpu_block(struct kvm_vcpu *vcpu) 2455void kvm_s390_vcpu_block(struct kvm_vcpu *vcpu)