Lines Matching refs:vmcb
40 struct vmcb *vmcb = svm->vmcb; in nested_svm_inject_npf_exit() local
42 if (vmcb->control.exit_code != SVM_EXIT_NPF) { in nested_svm_inject_npf_exit()
47 vmcb->control.exit_code = SVM_EXIT_NPF; in nested_svm_inject_npf_exit()
48 vmcb->control.exit_info_1 = (1ULL << 32); in nested_svm_inject_npf_exit()
49 vmcb->control.exit_info_2 = fault->address; in nested_svm_inject_npf_exit()
52 vmcb->control.exit_info_1 &= ~0xffffffffULL; in nested_svm_inject_npf_exit()
53 vmcb->control.exit_info_1 |= fault->error_code; in nested_svm_inject_npf_exit()
131 vmcb_mark_dirty(svm->vmcb, VMCB_INTERCEPTS); in recalc_intercepts()
136 c = &svm->vmcb->control; in recalc_intercepts()
326 svm->vmcb->control.msrpm_base_pa = __sme_set(__pa(svm->nested.msrpm)); in nested_svm_merge_msrpm()
531 svm->nested.ctl.event_inj = svm->vmcb->control.event_inj; in nested_sync_control_from_vmcb02()
532 svm->nested.ctl.event_inj_err = svm->vmcb->control.event_inj_err; in nested_sync_control_from_vmcb02()
555 svm->nested.ctl.int_ctl |= svm->vmcb->control.int_ctl & mask; in nested_sync_control_from_vmcb02()
563 struct vmcb *vmcb12) in nested_save_pending_event_to_vmcb12()
651 static void nested_vmcb02_prepare_save(struct vcpu_svm *svm, struct vmcb *vmcb12) in nested_vmcb02_prepare_save()
654 struct vmcb *vmcb01 = svm->vmcb01.ptr; in nested_vmcb02_prepare_save()
655 struct vmcb *vmcb02 = svm->nested.vmcb02.ptr; in nested_vmcb02_prepare_save()
761 struct vmcb *vmcb01 = svm->vmcb01.ptr; in nested_vmcb02_prepare_control()
762 struct vmcb *vmcb02 = svm->nested.vmcb02.ptr; in nested_vmcb02_prepare_control()
931 static void nested_svm_copy_common_state(struct vmcb *from_vmcb, struct vmcb *to_vmcb) in nested_svm_copy_common_state()
944 struct vmcb *vmcb12, bool from_vmrun) in enter_svm_guest_mode()
949 trace_kvm_nested_vmenter(svm->vmcb->save.rip, in enter_svm_guest_mode()
969 WARN_ON(svm->vmcb == svm->nested.vmcb02.ptr); in enter_svm_guest_mode()
999 struct vmcb *vmcb12; in nested_svm_vmrun()
1002 struct vmcb *vmcb01 = svm->vmcb01.ptr; in nested_svm_vmrun()
1021 vmcb12_gpa = svm->vmcb->save.rax; in nested_svm_vmrun()
1073 svm->vmcb->control.exit_code = SVM_EXIT_ERR; in nested_svm_vmrun()
1074 svm->vmcb->control.exit_info_1 = 0; in nested_svm_vmrun()
1075 svm->vmcb->control.exit_info_2 = 0; in nested_svm_vmrun()
1112 void svm_copy_vmloadsave_state(struct vmcb *to_vmcb, struct vmcb *from_vmcb) in svm_copy_vmloadsave_state()
1131 struct vmcb *vmcb01 = svm->vmcb01.ptr; in nested_svm_vmexit()
1132 struct vmcb *vmcb02 = svm->nested.vmcb02.ptr; in nested_svm_vmexit()
1133 struct vmcb *vmcb12; in nested_svm_vmexit()
1384 if (WARN_ON_ONCE(svm->vmcb != svm->vmcb01.ptr)) in svm_free_nested()
1418 vmcb_mark_all_dirty(svm->vmcb); in svm_leave_nested()
1441 write = svm->vmcb->control.exit_info_1 & 1; in nested_svm_exit_handled_msr()
1464 port = svm->vmcb->control.exit_info_1 >> 16; in nested_svm_intercept_ioio()
1465 size = (svm->vmcb->control.exit_info_1 & SVM_IOIO_SIZE_MASK) >> in nested_svm_intercept_ioio()
1481 u64 exit_code = svm->vmcb->control.exit_code; in nested_svm_intercept()
1530 if (to_svm(vcpu)->vmcb->save.cpl) { in nested_svm_check_permissions()
1550 struct vmcb *vmcb = svm->vmcb; in nested_svm_inject_exception_vmexit() local
1552 vmcb->control.exit_code = SVM_EXIT_EXCP_BASE + ex->vector; in nested_svm_inject_exception_vmexit()
1555 vmcb->control.exit_info_1 = ex->error_code; in nested_svm_inject_exception_vmexit()
1563 vmcb->control.exit_info_2 = ex->payload; in nested_svm_inject_exception_vmexit()
1565 vmcb->control.exit_info_2 = vcpu->arch.cr2; in nested_svm_inject_exception_vmexit()
1653 trace_kvm_nested_intr_vmexit(svm->vmcb->save.rip); in svm_check_nested_events()
1663 u32 exit_code = svm->vmcb->control.exit_code; in nested_svm_exit_special()
1755 struct vmcb __user *user_vmcb = (struct vmcb __user *) in svm_get_nested_state()
1815 struct vmcb __user *user_vmcb = (struct vmcb __user *) in svm_set_nested_state()
1918 nested_vmcb02_prepare_control(svm, svm->vmcb->save.rip, svm->vmcb->save.cs.base); in svm_set_nested_state()