Loading arch/arm/include/asm/kvm_arm.h +3 −0 Original line number Diff line number Diff line Loading @@ -211,4 +211,7 @@ #define HSR_HVC_IMM_MASK ((1UL << 16) - 1) #define HSR_DABT_CM (1U << 8) #define HSR_DABT_EA (1U << 9) #endif /* __ARM_KVM_ARM_H__ */ arch/arm/include/asm/kvm_emulate.h +5 −0 Original line number Diff line number Diff line Loading @@ -110,4 +110,9 @@ static inline int kvm_vcpu_dabt_get_rd(struct kvm_vcpu *vcpu) return (kvm_vcpu_get_hsr(vcpu) & HSR_SRT_MASK) >> HSR_SRT_SHIFT; } static inline bool kvm_vcpu_dabt_isextabt(struct kvm_vcpu *vcpu) { return kvm_vcpu_get_hsr(vcpu) & HSR_DABT_EA; } #endif /* __ARM_KVM_EMULATE_H__ */ arch/arm/kvm/mmio.c +1 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ static int decode_hsr(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, unsigned long rt, len; bool is_write, sign_extend; if ((kvm_vcpu_get_hsr(vcpu) >> 8) & 1) { if (kvm_vcpu_dabt_isextabt(vcpu)) { /* cache operation on I/O addr, tell guest unsupported */ kvm_inject_dabt(vcpu, kvm_vcpu_get_hfar(vcpu)); return 1; Loading Loading
arch/arm/include/asm/kvm_arm.h +3 −0 Original line number Diff line number Diff line Loading @@ -211,4 +211,7 @@ #define HSR_HVC_IMM_MASK ((1UL << 16) - 1) #define HSR_DABT_CM (1U << 8) #define HSR_DABT_EA (1U << 9) #endif /* __ARM_KVM_ARM_H__ */
arch/arm/include/asm/kvm_emulate.h +5 −0 Original line number Diff line number Diff line Loading @@ -110,4 +110,9 @@ static inline int kvm_vcpu_dabt_get_rd(struct kvm_vcpu *vcpu) return (kvm_vcpu_get_hsr(vcpu) & HSR_SRT_MASK) >> HSR_SRT_SHIFT; } static inline bool kvm_vcpu_dabt_isextabt(struct kvm_vcpu *vcpu) { return kvm_vcpu_get_hsr(vcpu) & HSR_DABT_EA; } #endif /* __ARM_KVM_EMULATE_H__ */
arch/arm/kvm/mmio.c +1 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ static int decode_hsr(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, unsigned long rt, len; bool is_write, sign_extend; if ((kvm_vcpu_get_hsr(vcpu) >> 8) & 1) { if (kvm_vcpu_dabt_isextabt(vcpu)) { /* cache operation on I/O addr, tell guest unsupported */ kvm_inject_dabt(vcpu, kvm_vcpu_get_hfar(vcpu)); return 1; Loading