diff options
Diffstat (limited to 'arch/powerpc/kvm/book3s_hv.c')
| -rw-r--r-- | arch/powerpc/kvm/book3s_hv.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c index cc0d7f1b19ab..bf66ec731e8f 100644 --- a/arch/powerpc/kvm/book3s_hv.c +++ b/arch/powerpc/kvm/book3s_hv.c | |||
| @@ -510,6 +510,9 @@ struct kvm_vcpu *kvmppc_core_vcpu_create(struct kvm *kvm, unsigned int id) | |||
| 510 | spin_unlock(&vcore->lock); | 510 | spin_unlock(&vcore->lock); |
| 511 | vcpu->arch.vcore = vcore; | 511 | vcpu->arch.vcore = vcore; |
| 512 | 512 | ||
| 513 | vcpu->arch.cpu_type = KVM_CPU_3S_64; | ||
| 514 | kvmppc_sanity_check(vcpu); | ||
| 515 | |||
| 513 | return vcpu; | 516 | return vcpu; |
| 514 | 517 | ||
| 515 | free_vcpu: | 518 | free_vcpu: |
| @@ -800,6 +803,11 @@ int kvmppc_vcpu_run(struct kvm_run *run, struct kvm_vcpu *vcpu) | |||
| 800 | { | 803 | { |
| 801 | int r; | 804 | int r; |
| 802 | 805 | ||
| 806 | if (!vcpu->arch.sane) { | ||
| 807 | run->exit_reason = KVM_EXIT_INTERNAL_ERROR; | ||
| 808 | return -EINVAL; | ||
| 809 | } | ||
| 810 | |||
| 803 | do { | 811 | do { |
| 804 | r = kvmppc_run_vcpu(run, vcpu); | 812 | r = kvmppc_run_vcpu(run, vcpu); |
| 805 | 813 | ||
