diff options
author | Alexander Graf <agraf@suse.de> | 2010-07-29 08:47:44 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2010-10-24 04:50:44 -0400 |
commit | d562de48de68b60b3d2522e7d8273d7112034ee6 (patch) | |
tree | ec58ea23bea8aec64be3d169033cece19cd6d3e8 /arch/powerpc/kvm/book3s_emulate.c | |
parent | 666e7252a15b7fc4a116e65deaf6da5e4ce660e3 (diff) |
KVM: PPC: Convert DSISR to shared page
The DSISR register contains information about a data page fault. It is fully
read/write from inside the guest context and we don't need to worry about
interacting based on writes of this register.
This patch converts all users of the current field to the shared page.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/powerpc/kvm/book3s_emulate.c')
-rw-r--r-- | arch/powerpc/kvm/book3s_emulate.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/powerpc/kvm/book3s_emulate.c b/arch/powerpc/kvm/book3s_emulate.c index 35d3c16b2938..9982ff163af0 100644 --- a/arch/powerpc/kvm/book3s_emulate.c +++ b/arch/powerpc/kvm/book3s_emulate.c | |||
@@ -221,7 +221,7 @@ int kvmppc_core_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu, | |||
221 | else if (r == -EPERM) | 221 | else if (r == -EPERM) |
222 | dsisr |= DSISR_PROTFAULT; | 222 | dsisr |= DSISR_PROTFAULT; |
223 | 223 | ||
224 | to_book3s(vcpu)->dsisr = dsisr; | 224 | vcpu->arch.shared->dsisr = dsisr; |
225 | to_svcpu(vcpu)->fault_dsisr = dsisr; | 225 | to_svcpu(vcpu)->fault_dsisr = dsisr; |
226 | 226 | ||
227 | kvmppc_book3s_queue_irqprio(vcpu, | 227 | kvmppc_book3s_queue_irqprio(vcpu, |
@@ -327,7 +327,7 @@ int kvmppc_core_emulate_mtspr(struct kvm_vcpu *vcpu, int sprn, int rs) | |||
327 | to_book3s(vcpu)->sdr1 = spr_val; | 327 | to_book3s(vcpu)->sdr1 = spr_val; |
328 | break; | 328 | break; |
329 | case SPRN_DSISR: | 329 | case SPRN_DSISR: |
330 | to_book3s(vcpu)->dsisr = spr_val; | 330 | vcpu->arch.shared->dsisr = spr_val; |
331 | break; | 331 | break; |
332 | case SPRN_DAR: | 332 | case SPRN_DAR: |
333 | vcpu->arch.dear = spr_val; | 333 | vcpu->arch.dear = spr_val; |
@@ -440,7 +440,7 @@ int kvmppc_core_emulate_mfspr(struct kvm_vcpu *vcpu, int sprn, int rt) | |||
440 | kvmppc_set_gpr(vcpu, rt, to_book3s(vcpu)->sdr1); | 440 | kvmppc_set_gpr(vcpu, rt, to_book3s(vcpu)->sdr1); |
441 | break; | 441 | break; |
442 | case SPRN_DSISR: | 442 | case SPRN_DSISR: |
443 | kvmppc_set_gpr(vcpu, rt, to_book3s(vcpu)->dsisr); | 443 | kvmppc_set_gpr(vcpu, rt, vcpu->arch.shared->dsisr); |
444 | break; | 444 | break; |
445 | case SPRN_DAR: | 445 | case SPRN_DAR: |
446 | kvmppc_set_gpr(vcpu, rt, vcpu->arch.dear); | 446 | kvmppc_set_gpr(vcpu, rt, vcpu->arch.dear); |