KVM: PPC: Convert MSR to shared page
[firefly-linux-kernel-4.4.55.git] / arch / powerpc / kvm / book3s_paired_singles.c
index 474f2e24050a03a3d89ca85a7b34993d687a61f3..626e6efaa79f4dc5b6494c21c37ab737f42ff0e1 100644 (file)
@@ -165,9 +165,10 @@ static inline void kvmppc_sync_qpr(struct kvm_vcpu *vcpu, int rt)
 static void kvmppc_inject_pf(struct kvm_vcpu *vcpu, ulong eaddr, bool is_store)
 {
        u64 dsisr;
+       struct kvm_vcpu_arch_shared *shared = vcpu->arch.shared;
 
-       vcpu->arch.msr = kvmppc_set_field(vcpu->arch.msr, 33, 36, 0);
-       vcpu->arch.msr = kvmppc_set_field(vcpu->arch.msr, 42, 47, 0);
+       shared->msr = kvmppc_set_field(shared->msr, 33, 36, 0);
+       shared->msr = kvmppc_set_field(shared->msr, 42, 47, 0);
        vcpu->arch.dear = eaddr;
        /* Page Fault */
        dsisr = kvmppc_set_field(0, 33, 33, 1);
@@ -658,7 +659,7 @@ int kvmppc_emulate_paired_single(struct kvm_run *run, struct kvm_vcpu *vcpu)
        if (!kvmppc_inst_is_paired_single(vcpu, inst))
                return EMULATE_FAIL;
 
-       if (!(vcpu->arch.msr & MSR_FP)) {
+       if (!(vcpu->arch.shared->msr & MSR_FP)) {
                kvmppc_book3s_queue_irqprio(vcpu, BOOK3S_INTERRUPT_FP_UNAVAIL);
                return EMULATE_AGAIN;
        }