aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/powerpc/kvm/book3s_emulate.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/book3s_emulate.c b/arch/powerpc/kvm/book3s_emulate.c
index 9bdff159ad2a..61f38eb470b3 100644
--- a/arch/powerpc/kvm/book3s_emulate.c
+++ b/arch/powerpc/kvm/book3s_emulate.c
@@ -676,6 +676,12 @@ u32 kvmppc_alignment_dsisr(struct kvm_vcpu *vcpu, unsigned int inst)
676 676
677ulong kvmppc_alignment_dar(struct kvm_vcpu *vcpu, unsigned int inst) 677ulong kvmppc_alignment_dar(struct kvm_vcpu *vcpu, unsigned int inst)
678{ 678{
679#ifdef CONFIG_PPC_BOOK3S_64
680 /*
681 * Linux's fix_alignment() assumes that DAR is valid, so can we
682 */
683 return vcpu->arch.fault_dar;
684#else
679 ulong dar = 0; 685 ulong dar = 0;
680 ulong ra = get_ra(inst); 686 ulong ra = get_ra(inst);
681 ulong rb = get_rb(inst); 687 ulong rb = get_rb(inst);
@@ -700,4 +706,5 @@ ulong kvmppc_alignment_dar(struct kvm_vcpu *vcpu, unsigned int inst)
700 } 706 }
701 707
702 return dar; 708 return dar;
709#endif
703} 710}