Lines Matching refs:vcpu
29 static void kvm_handle_guest_serror(struct kvm_vcpu *vcpu, u32 esr) in kvm_handle_guest_serror() argument
32 kvm_inject_vabt(vcpu); in kvm_handle_guest_serror()
35 static int handle_hvc(struct kvm_vcpu *vcpu) in handle_hvc() argument
39 trace_kvm_hvc_arm64(*vcpu_pc(vcpu), vcpu_get_reg(vcpu, 0), in handle_hvc()
40 kvm_vcpu_hvc_get_imm(vcpu)); in handle_hvc()
41 vcpu->stat.hvc_exit_stat++; in handle_hvc()
43 ret = kvm_hvc_call_handler(vcpu); in handle_hvc()
45 vcpu_set_reg(vcpu, 0, ~0UL); in handle_hvc()
52 static int handle_smc(struct kvm_vcpu *vcpu) in handle_smc() argument
62 vcpu_set_reg(vcpu, 0, ~0UL); in handle_smc()
63 kvm_incr_pc(vcpu); in handle_smc()
71 static int handle_no_fpsimd(struct kvm_vcpu *vcpu) in handle_no_fpsimd() argument
73 kvm_inject_undefined(vcpu); in handle_no_fpsimd()
89 static int kvm_handle_wfx(struct kvm_vcpu *vcpu) in kvm_handle_wfx() argument
91 if (kvm_vcpu_get_esr(vcpu) & ESR_ELx_WFx_ISS_WFE) { in kvm_handle_wfx()
92 trace_kvm_wfx_arm64(*vcpu_pc(vcpu), true); in kvm_handle_wfx()
93 vcpu->stat.wfe_exit_stat++; in kvm_handle_wfx()
94 kvm_vcpu_on_spin(vcpu, vcpu_mode_priv(vcpu)); in kvm_handle_wfx()
96 trace_kvm_wfx_arm64(*vcpu_pc(vcpu), false); in kvm_handle_wfx()
97 vcpu->stat.wfi_exit_stat++; in kvm_handle_wfx()
98 kvm_vcpu_block(vcpu); in kvm_handle_wfx()
99 kvm_clear_request(KVM_REQ_UNHALT, vcpu); in kvm_handle_wfx()
102 kvm_incr_pc(vcpu); in kvm_handle_wfx()
118 static int kvm_handle_guest_debug(struct kvm_vcpu *vcpu) in kvm_handle_guest_debug() argument
120 struct kvm_run *run = vcpu->run; in kvm_handle_guest_debug()
121 u32 esr = kvm_vcpu_get_esr(vcpu); in kvm_handle_guest_debug()
129 run->debug.arch.far = vcpu->arch.fault.far_el2; in kvm_handle_guest_debug()
146 static int kvm_handle_unknown_ec(struct kvm_vcpu *vcpu) in kvm_handle_unknown_ec() argument
148 u32 esr = kvm_vcpu_get_esr(vcpu); in kvm_handle_unknown_ec()
153 kvm_inject_undefined(vcpu); in kvm_handle_unknown_ec()
157 static int handle_sve(struct kvm_vcpu *vcpu) in handle_sve() argument
160 kvm_inject_undefined(vcpu); in handle_sve()
169 static int kvm_handle_ptrauth(struct kvm_vcpu *vcpu) in kvm_handle_ptrauth() argument
171 kvm_inject_undefined(vcpu); in kvm_handle_ptrauth()
200 static exit_handle_fn kvm_get_exit_handler(struct kvm_vcpu *vcpu) in kvm_get_exit_handler() argument
202 u32 esr = kvm_vcpu_get_esr(vcpu); in kvm_get_exit_handler()
214 static int handle_trap_exceptions(struct kvm_vcpu *vcpu) in handle_trap_exceptions() argument
222 if (!kvm_condition_valid(vcpu)) { in handle_trap_exceptions()
223 kvm_incr_pc(vcpu); in handle_trap_exceptions()
228 exit_handler = kvm_get_exit_handler(vcpu); in handle_trap_exceptions()
229 handled = exit_handler(vcpu); in handle_trap_exceptions()
239 int handle_exit(struct kvm_vcpu *vcpu, int exception_index) in handle_exit() argument
241 struct kvm_run *run = vcpu->run; in handle_exit()
259 return handle_trap_exceptions(vcpu); in handle_exit()
283 void handle_exit_early(struct kvm_vcpu *vcpu, int exception_index) in handle_exit_early() argument
287 u64 disr = kvm_vcpu_get_disr(vcpu); in handle_exit_early()
289 kvm_handle_guest_serror(vcpu, disr_to_esr(disr)); in handle_exit_early()
291 kvm_inject_vabt(vcpu); in handle_exit_early()
300 kvm_handle_guest_serror(vcpu, kvm_vcpu_get_esr(vcpu)); in handle_exit_early()