diff options
| -rw-r--r-- | arch/powerpc/kvm/book3s_emulate.c | 7 |
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 | ||
| 677 | ulong kvmppc_alignment_dar(struct kvm_vcpu *vcpu, unsigned int inst) | 677 | ulong 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 | } |
