Lines Matching refs:vcpu
17 static void inject_abt64(struct kvm_vcpu *vcpu, bool is_iabt, unsigned long addr) in inject_abt64() argument
19 unsigned long cpsr = *vcpu_cpsr(vcpu); in inject_abt64()
20 bool is_aarch32 = vcpu_mode_is_32bit(vcpu); in inject_abt64()
23 vcpu->arch.flags |= (KVM_ARM64_EXCEPT_AA64_EL1 | in inject_abt64()
27 vcpu_write_sys_reg(vcpu, addr, FAR_EL1); in inject_abt64()
33 if (kvm_vcpu_trap_il_is32bit(vcpu)) in inject_abt64()
48 vcpu_write_sys_reg(vcpu, esr | ESR_ELx_FSC_EXTABT, ESR_EL1); in inject_abt64()
51 static void inject_undef64(struct kvm_vcpu *vcpu) in inject_undef64() argument
55 vcpu->arch.flags |= (KVM_ARM64_EXCEPT_AA64_EL1 | in inject_undef64()
63 if (kvm_vcpu_trap_il_is32bit(vcpu)) in inject_undef64()
66 vcpu_write_sys_reg(vcpu, esr, ESR_EL1); in inject_undef64()
74 static void inject_undef32(struct kvm_vcpu *vcpu) in inject_undef32() argument
76 vcpu->arch.flags |= (KVM_ARM64_EXCEPT_AA32_UND | in inject_undef32()
84 static void inject_abt32(struct kvm_vcpu *vcpu, bool is_pabt, u32 addr) in inject_abt32() argument
90 if (vcpu_read_sys_reg(vcpu, TCR_EL1) & TTBCR_EAE) { in inject_abt32()
97 far = vcpu_read_sys_reg(vcpu, FAR_EL1); in inject_abt32()
100 vcpu->arch.flags |= (KVM_ARM64_EXCEPT_AA32_IABT | in inject_abt32()
104 vcpu_write_sys_reg(vcpu, fsr, IFSR32_EL2); in inject_abt32()
106 vcpu->arch.flags |= (KVM_ARM64_EXCEPT_AA32_DABT | in inject_abt32()
110 vcpu_write_sys_reg(vcpu, fsr, ESR_EL1); in inject_abt32()
113 vcpu_write_sys_reg(vcpu, far, FAR_EL1); in inject_abt32()
124 void kvm_inject_dabt(struct kvm_vcpu *vcpu, unsigned long addr) in kvm_inject_dabt() argument
126 if (vcpu_el1_is_32bit(vcpu)) in kvm_inject_dabt()
127 inject_abt32(vcpu, false, addr); in kvm_inject_dabt()
129 inject_abt64(vcpu, false, addr); in kvm_inject_dabt()
140 void kvm_inject_pabt(struct kvm_vcpu *vcpu, unsigned long addr) in kvm_inject_pabt() argument
142 if (vcpu_el1_is_32bit(vcpu)) in kvm_inject_pabt()
143 inject_abt32(vcpu, true, addr); in kvm_inject_pabt()
145 inject_abt64(vcpu, true, addr); in kvm_inject_pabt()
155 void kvm_inject_undefined(struct kvm_vcpu *vcpu) in kvm_inject_undefined() argument
157 if (vcpu_el1_is_32bit(vcpu)) in kvm_inject_undefined()
158 inject_undef32(vcpu); in kvm_inject_undefined()
160 inject_undef64(vcpu); in kvm_inject_undefined()
163 void kvm_set_sei_esr(struct kvm_vcpu *vcpu, u64 esr) in kvm_set_sei_esr() argument
165 vcpu_set_vsesr(vcpu, esr & ESR_ELx_ISS_MASK); in kvm_set_sei_esr()
166 *vcpu_hcr(vcpu) |= HCR_VSE; in kvm_set_sei_esr()
181 void kvm_inject_vabt(struct kvm_vcpu *vcpu) in kvm_inject_vabt() argument
183 kvm_set_sei_esr(vcpu, ESR_ELx_ISV); in kvm_inject_vabt()