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_code_hi = 0; in nested_svm_inject_npf_exit()
49 vmcb->control.exit_info_1 = (1ULL << 32); in nested_svm_inject_npf_exit()
50 vmcb->control.exit_info_2 = fault->address; in nested_svm_inject_npf_exit()
53 vmcb->control.exit_info_1 &= ~0xffffffffULL; in nested_svm_inject_npf_exit()
54 vmcb->control.exit_info_1 |= fault->error_code; in nested_svm_inject_npf_exit()
132 vmcb_mark_dirty(svm->vmcb, VMCB_INTERCEPTS); in recalc_intercepts()
137 c = &svm->vmcb->control; in recalc_intercepts()
311 svm->vmcb->control.msrpm_base_pa = __sme_set(__pa(svm->nested.msrpm)); in nested_svm_merge_msrpm()
488 svm->nested.ctl.event_inj = svm->vmcb->control.event_inj; in nested_sync_control_from_vmcb02()
489 svm->nested.ctl.event_inj_err = svm->vmcb->control.event_inj_err; in nested_sync_control_from_vmcb02()
512 svm->nested.ctl.int_ctl |= svm->vmcb->control.int_ctl & mask; in nested_sync_control_from_vmcb02()
520 struct vmcb *vmcb12) in nested_save_pending_event_to_vmcb12()
608 static void nested_vmcb02_prepare_save(struct vcpu_svm *svm, struct vmcb *vmcb12) in nested_vmcb02_prepare_save()
611 struct vmcb *vmcb01 = svm->vmcb01.ptr; in nested_vmcb02_prepare_save()
612 struct vmcb *vmcb02 = svm->nested.vmcb02.ptr; in nested_vmcb02_prepare_save()
711 struct vmcb *vmcb01 = svm->vmcb01.ptr; in nested_vmcb02_prepare_control()
712 struct vmcb *vmcb02 = svm->nested.vmcb02.ptr; in nested_vmcb02_prepare_control()
871 static void nested_svm_copy_common_state(struct vmcb *from_vmcb, struct vmcb *to_vmcb) in nested_svm_copy_common_state()
884 struct vmcb *vmcb12, bool from_vmrun) in enter_svm_guest_mode()
889 trace_kvm_nested_vmenter(svm->vmcb->save.rip, in enter_svm_guest_mode()
909 WARN_ON(svm->vmcb == svm->nested.vmcb02.ptr); in enter_svm_guest_mode()
939 struct vmcb *vmcb12; in nested_svm_vmrun()
942 struct vmcb *vmcb01 = svm->vmcb01.ptr; in nested_svm_vmrun()
961 vmcb12_gpa = svm->vmcb->save.rax; in nested_svm_vmrun()
1015 svm->vmcb->control.exit_code = SVM_EXIT_ERR; in nested_svm_vmrun()
1016 svm->vmcb->control.exit_code_hi = 0; in nested_svm_vmrun()
1017 svm->vmcb->control.exit_info_1 = 0; in nested_svm_vmrun()
1018 svm->vmcb->control.exit_info_2 = 0; in nested_svm_vmrun()
1049 void svm_copy_vmloadsave_state(struct vmcb *to_vmcb, struct vmcb *from_vmcb) in svm_copy_vmloadsave_state()
1068 struct vmcb *vmcb01 = svm->vmcb01.ptr; in nested_svm_vmexit()
1069 struct vmcb *vmcb02 = svm->nested.vmcb02.ptr; in nested_svm_vmexit()
1070 struct vmcb *vmcb12; in nested_svm_vmexit()
1314 if (WARN_ON_ONCE(svm->vmcb != svm->vmcb01.ptr)) in svm_free_nested()
1348 vmcb_mark_all_dirty(svm->vmcb); in svm_leave_nested()
1369 write = svm->vmcb->control.exit_info_1 & 1; in nested_svm_exit_handled_msr()
1392 port = svm->vmcb->control.exit_info_1 >> 16; in nested_svm_intercept_ioio()
1393 size = (svm->vmcb->control.exit_info_1 & SVM_IOIO_SIZE_MASK) >> in nested_svm_intercept_ioio()
1409 u32 exit_code = svm->vmcb->control.exit_code; in nested_svm_intercept()
1470 if (to_svm(vcpu)->vmcb->save.cpl) { in nested_svm_check_permissions()
1490 struct vmcb *vmcb = svm->vmcb; in nested_svm_inject_exception_vmexit() local
1492 vmcb->control.exit_code = SVM_EXIT_EXCP_BASE + ex->vector; in nested_svm_inject_exception_vmexit()
1493 vmcb->control.exit_code_hi = 0; in nested_svm_inject_exception_vmexit()
1496 vmcb->control.exit_info_1 = ex->error_code; in nested_svm_inject_exception_vmexit()
1504 vmcb->control.exit_info_2 = ex->payload; in nested_svm_inject_exception_vmexit()
1506 vmcb->control.exit_info_2 = vcpu->arch.cr2; in nested_svm_inject_exception_vmexit()
1594 trace_kvm_nested_intr_vmexit(svm->vmcb->save.rip); in svm_check_nested_events()
1604 u32 exit_code = svm->vmcb->control.exit_code; in nested_svm_exit_special()
1696 struct vmcb __user *user_vmcb = (struct vmcb __user *) in svm_get_nested_state()
1756 struct vmcb __user *user_vmcb = (struct vmcb __user *) in svm_set_nested_state()
1861 nested_vmcb02_prepare_control(svm, svm->vmcb->save.rip, svm->vmcb->save.cs.base); in svm_set_nested_state()