Lines Matching refs:vmcb

40 	struct vmcb *vmcb = svm->vmcb;
42 if (vmcb->control.exit_code != SVM_EXIT_NPF) {
47 vmcb->control.exit_code = SVM_EXIT_NPF;
48 vmcb->control.exit_code_hi = 0;
49 vmcb->control.exit_info_1 = (1ULL << 32);
50 vmcb->control.exit_info_2 = fault->address;
53 vmcb->control.exit_info_1 &= ~0xffffffffULL;
54 vmcb->control.exit_info_1 |= fault->error_code;
128 vmcb_mark_dirty(svm->vmcb, VMCB_INTERCEPTS);
133 c = &svm->vmcb->control;
234 svm->vmcb->control.msrpm_base_pa = __sme_set(__pa(svm->nested.msrpm));
409 svm->nested.ctl.event_inj = svm->vmcb->control.event_inj;
410 svm->nested.ctl.event_inj_err = svm->vmcb->control.event_inj_err;
433 svm->nested.ctl.int_ctl |= svm->vmcb->control.int_ctl & mask;
441 struct vmcb *vmcb12)
535 static void nested_vmcb02_prepare_save(struct vcpu_svm *svm, struct vmcb *vmcb12)
538 struct vmcb *vmcb01 = svm->vmcb01.ptr;
539 struct vmcb *vmcb02 = svm->nested.vmcb02.ptr;
638 struct vmcb *vmcb01 = svm->vmcb01.ptr;
639 struct vmcb *vmcb02 = svm->nested.vmcb02.ptr;
771 static void nested_svm_copy_common_state(struct vmcb *from_vmcb, struct vmcb *to_vmcb)
784 struct vmcb *vmcb12, bool from_vmrun)
789 trace_kvm_nested_vmenter(svm->vmcb->save.rip,
809 WARN_ON(svm->vmcb == svm->nested.vmcb02.ptr);
839 struct vmcb *vmcb12;
842 struct vmcb *vmcb01 = svm->vmcb01.ptr;
861 vmcb12_gpa = svm->vmcb->save.rax;
915 svm->vmcb->control.exit_code = SVM_EXIT_ERR;
916 svm->vmcb->control.exit_code_hi = 0;
917 svm->vmcb->control.exit_info_1 = 0;
918 svm->vmcb->control.exit_info_2 = 0;
949 void svm_copy_vmloadsave_state(struct vmcb *to_vmcb, struct vmcb *from_vmcb)
968 struct vmcb *vmcb01 = svm->vmcb01.ptr;
969 struct vmcb *vmcb02 = svm->nested.vmcb02.ptr;
970 struct vmcb *vmcb12;
993 /* Give the current vmcb to the guest */
1206 if (WARN_ON_ONCE(svm->vmcb != svm->vmcb01.ptr))
1240 vmcb_mark_all_dirty(svm->vmcb);
1259 write = svm->vmcb->control.exit_info_1 & 1;
1284 port = svm->vmcb->control.exit_info_1 >> 16;
1285 size = (svm->vmcb->control.exit_info_1 & SVM_IOIO_SIZE_MASK) >>
1301 u32 exit_code = svm->vmcb->control.exit_code;
1362 if (to_svm(vcpu)->vmcb->save.cpl) {
1382 struct vmcb *vmcb = svm->vmcb;
1384 vmcb->control.exit_code = SVM_EXIT_EXCP_BASE + ex->vector;
1385 vmcb->control.exit_code_hi = 0;
1388 vmcb->control.exit_info_1 = ex->error_code;
1396 vmcb->control.exit_info_2 = ex->payload;
1398 vmcb->control.exit_info_2 = vcpu->arch.cr2;
1486 trace_kvm_nested_intr_vmexit(svm->vmcb->save.rip);
1496 u32 exit_code = svm->vmcb->control.exit_code;
1588 struct vmcb __user *user_vmcb = (struct vmcb __user *)
1648 struct vmcb __user *user_vmcb = (struct vmcb __user *)
1753 nested_vmcb02_prepare_control(svm, svm->vmcb->save.rip, svm->vmcb->save.cs.base);