Lines Matching refs:exit_code
2527 svm->vmcb->control.exit_code = SVM_EXIT_CR0_SEL_WRITE; in check_selective_cr0_intercepted()
2550 if (svm->vmcb->control.exit_code == SVM_EXIT_CR0_SEL_WRITE) in cr_interception()
2553 cr = svm->vmcb->control.exit_code - SVM_EXIT_READ_CR0; in cr_interception()
2619 cr = svm->vmcb->control.exit_code - SVM_EXIT_CR0_WRITE_TRAP; in cr_trap()
2667 dr = svm->vmcb->control.exit_code - SVM_EXIT_READ_DR0; in dr_interception()
3244 pr_err("%-20s%08x\n", "exit_code:", control->exit_code); in dump_vmcb()
3333 static bool svm_check_exit_valid(struct kvm_vcpu *vcpu, u64 exit_code) in svm_check_exit_valid() argument
3335 return (exit_code < ARRAY_SIZE(svm_exit_handlers) && in svm_check_exit_valid()
3336 svm_exit_handlers[exit_code]); in svm_check_exit_valid()
3339 static int svm_handle_invalid_exit(struct kvm_vcpu *vcpu, u64 exit_code) in svm_handle_invalid_exit() argument
3341 vcpu_unimpl(vcpu, "svm: unexpected exit reason 0x%llx\n", exit_code); in svm_handle_invalid_exit()
3346 vcpu->run->internal.data[0] = exit_code; in svm_handle_invalid_exit()
3351 int svm_invoke_exit_handler(struct kvm_vcpu *vcpu, u64 exit_code) in svm_invoke_exit_handler() argument
3353 if (!svm_check_exit_valid(vcpu, exit_code)) in svm_invoke_exit_handler()
3354 return svm_handle_invalid_exit(vcpu, exit_code); in svm_invoke_exit_handler()
3357 if (exit_code == SVM_EXIT_MSR) in svm_invoke_exit_handler()
3359 else if (exit_code == SVM_EXIT_VINTR) in svm_invoke_exit_handler()
3361 else if (exit_code == SVM_EXIT_INTR) in svm_invoke_exit_handler()
3363 else if (exit_code == SVM_EXIT_HLT) in svm_invoke_exit_handler()
3365 else if (exit_code == SVM_EXIT_NPF) in svm_invoke_exit_handler()
3368 return svm_exit_handlers[exit_code](vcpu); in svm_invoke_exit_handler()
3377 *reason = control->exit_code; in svm_get_exit_info()
3392 u32 exit_code = svm->vmcb->control.exit_code; in handle_exit() local
3418 if (svm->vmcb->control.exit_code == SVM_EXIT_ERR) { in handle_exit()
3421 = svm->vmcb->control.exit_code; in handle_exit()
3428 exit_code != SVM_EXIT_EXCP_BASE + PF_VECTOR && in handle_exit()
3429 exit_code != SVM_EXIT_NPF && exit_code != SVM_EXIT_TASK_SWITCH && in handle_exit()
3430 exit_code != SVM_EXIT_INTR && exit_code != SVM_EXIT_NMI) in handle_exit()
3434 exit_code); in handle_exit()
3439 return svm_invoke_exit_handler(vcpu, exit_code); in handle_exit()
3805 if (to_svm(vcpu)->vmcb->control.exit_code == SVM_EXIT_MSR && in svm_exit_handlers_fastpath()
3935 if (unlikely(svm->vmcb->control.exit_code == SVM_EXIT_NMI)) in svm_vcpu_run()
3943 if (unlikely(svm->vmcb->control.exit_code == SVM_EXIT_NMI)) in svm_vcpu_run()
3954 svm->vmcb->control.exit_code != SVM_EXIT_ERR) in svm_vcpu_run()
3964 if (svm->vmcb->control.exit_code == SVM_EXIT_EXCP_BASE + PF_VECTOR) in svm_vcpu_run()
3975 if (unlikely(svm->vmcb->control.exit_code == in svm_vcpu_run()
4123 #define PRE_EX(exit) { .exit_code = (exit), \
4125 #define POST_EX(exit) { .exit_code = (exit), \
4127 #define POST_MEM(exit) { .exit_code = (exit), \
4131 u32 exit_code; member
4205 switch (icpt_info.exit_code) { in svm_check_intercept()
4208 icpt_info.exit_code += info->modrm_reg; in svm_check_intercept()
4214 icpt_info.exit_code += info->modrm_reg; in svm_check_intercept()
4216 if (icpt_info.exit_code != SVM_EXIT_WRITE_CR0 || in svm_check_intercept()
4236 icpt_info.exit_code = SVM_EXIT_CR0_SEL_WRITE; in svm_check_intercept()
4242 icpt_info.exit_code += info->modrm_reg; in svm_check_intercept()
4297 vmcb->control.exit_code = icpt_info.exit_code; in svm_check_intercept()