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()
128 vmcb_mark_dirty(svm->vmcb, VMCB_INTERCEPTS); in recalc_intercepts()
133 c = &svm->vmcb->control; in recalc_intercepts()
234 svm->vmcb->control.msrpm_base_pa = __sme_set(__pa(svm->nested.msrpm)); in nested_svm_vmrun_msrpm()
424 svm->nested.ctl.event_inj = svm->vmcb->control.event_inj; in nested_sync_control_from_vmcb02()
425 svm->nested.ctl.event_inj_err = svm->vmcb->control.event_inj_err; in nested_sync_control_from_vmcb02()
448 svm->nested.ctl.int_ctl |= svm->vmcb->control.int_ctl & mask; in nested_sync_control_from_vmcb02()
456 struct vmcb *vmcb12) in nested_save_pending_event_to_vmcb12()
550 static void nested_vmcb02_prepare_save(struct vcpu_svm *svm, struct vmcb *vmcb12) in nested_vmcb02_prepare_save()
553 struct vmcb *vmcb01 = svm->vmcb01.ptr; in nested_vmcb02_prepare_save()
554 struct vmcb *vmcb02 = svm->nested.vmcb02.ptr; in nested_vmcb02_prepare_save()
653 struct vmcb *vmcb01 = svm->vmcb01.ptr; in nested_vmcb02_prepare_control()
654 struct vmcb *vmcb02 = svm->nested.vmcb02.ptr; in nested_vmcb02_prepare_control()
786 static void nested_svm_copy_common_state(struct vmcb *from_vmcb, struct vmcb *to_vmcb) in nested_svm_copy_common_state()
799 struct vmcb *vmcb12, bool from_vmrun) in enter_svm_guest_mode()
804 trace_kvm_nested_vmenter(svm->vmcb->save.rip, in enter_svm_guest_mode()
824 WARN_ON(svm->vmcb == svm->nested.vmcb02.ptr); in enter_svm_guest_mode()
854 struct vmcb *vmcb12; in nested_svm_vmrun()
857 struct vmcb *vmcb01 = svm->vmcb01.ptr; in nested_svm_vmrun()
876 vmcb12_gpa = svm->vmcb->save.rax; in nested_svm_vmrun()
930 svm->vmcb->control.exit_code = SVM_EXIT_ERR; in nested_svm_vmrun()
931 svm->vmcb->control.exit_code_hi = 0; in nested_svm_vmrun()
932 svm->vmcb->control.exit_info_1 = 0; in nested_svm_vmrun()
933 svm->vmcb->control.exit_info_2 = 0; in nested_svm_vmrun()
964 void svm_copy_vmloadsave_state(struct vmcb *to_vmcb, struct vmcb *from_vmcb) in svm_copy_vmloadsave_state()
983 struct vmcb *vmcb01 = svm->vmcb01.ptr; in nested_svm_vmexit()
984 struct vmcb *vmcb02 = svm->nested.vmcb02.ptr; in nested_svm_vmexit()
985 struct vmcb *vmcb12; in nested_svm_vmexit()
1221 if (WARN_ON_ONCE(svm->vmcb != svm->vmcb01.ptr)) in svm_free_nested()
1255 vmcb_mark_all_dirty(svm->vmcb); in svm_leave_nested()
1274 write = svm->vmcb->control.exit_info_1 & 1; in nested_svm_exit_handled_msr()
1299 port = svm->vmcb->control.exit_info_1 >> 16; in nested_svm_intercept_ioio()
1300 size = (svm->vmcb->control.exit_info_1 & SVM_IOIO_SIZE_MASK) >> in nested_svm_intercept_ioio()
1316 u32 exit_code = svm->vmcb->control.exit_code; in nested_svm_intercept()
1377 if (to_svm(vcpu)->vmcb->save.cpl) { in nested_svm_check_permissions()
1397 struct vmcb *vmcb = svm->vmcb; in nested_svm_inject_exception_vmexit() local
1399 vmcb->control.exit_code = SVM_EXIT_EXCP_BASE + ex->vector; in nested_svm_inject_exception_vmexit()
1400 vmcb->control.exit_code_hi = 0; in nested_svm_inject_exception_vmexit()
1403 vmcb->control.exit_info_1 = ex->error_code; in nested_svm_inject_exception_vmexit()
1411 vmcb->control.exit_info_2 = ex->payload; in nested_svm_inject_exception_vmexit()
1413 vmcb->control.exit_info_2 = vcpu->arch.cr2; in nested_svm_inject_exception_vmexit()
1501 trace_kvm_nested_intr_vmexit(svm->vmcb->save.rip); in svm_check_nested_events()
1511 u32 exit_code = svm->vmcb->control.exit_code; in nested_svm_exit_special()
1603 struct vmcb __user *user_vmcb = (struct vmcb __user *) in svm_get_nested_state()
1663 struct vmcb __user *user_vmcb = (struct vmcb __user *) in svm_set_nested_state()
1768 nested_vmcb02_prepare_control(svm, svm->vmcb->save.rip, svm->vmcb->save.cs.base); in svm_set_nested_state()