Lines Matching full:control
37 if (svm->vmcb->control.exit_code != SVM_EXIT_NPF) { in nested_svm_inject_npf_exit()
42 svm->vmcb->control.exit_code = SVM_EXIT_NPF; in nested_svm_inject_npf_exit()
43 svm->vmcb->control.exit_code_hi = 0; in nested_svm_inject_npf_exit()
44 svm->vmcb->control.exit_info_1 = (1ULL << 32); in nested_svm_inject_npf_exit()
45 svm->vmcb->control.exit_info_2 = fault->address; in nested_svm_inject_npf_exit()
48 svm->vmcb->control.exit_info_1 &= ~0xffffffffULL; in nested_svm_inject_npf_exit()
49 svm->vmcb->control.exit_info_1 |= fault->error_code; in nested_svm_inject_npf_exit()
61 svm->vmcb->control.exit_code = SVM_EXIT_EXCP_BASE + PF_VECTOR; in svm_inject_page_fault_nested()
62 svm->vmcb->control.exit_code_hi = 0; in svm_inject_page_fault_nested()
63 svm->vmcb->control.exit_info_1 = fault->error_code; in svm_inject_page_fault_nested()
64 svm->vmcb->control.exit_info_2 = fault->address; in svm_inject_page_fault_nested()
125 c = &svm->vmcb->control; in recalc_intercepts()
126 h = &svm->nested.hsave->control; in recalc_intercepts()
214 svm->vmcb->control.msrpm_base_pa = __sme_set(__pa(svm->nested.msrpm)); in nested_svm_vmrun_msrpm()
237 static bool nested_vmcb_check_controls(struct vmcb_control_area *control) in nested_vmcb_check_controls() argument
239 if ((vmcb_is_intercept(control, INTERCEPT_VMRUN)) == 0) in nested_vmcb_check_controls()
242 if (control->asid == 0) in nested_vmcb_check_controls()
245 if ((control->nested_ctl & SVM_NESTED_CTL_NP_ENABLE) && in nested_vmcb_check_controls()
288 struct vmcb_control_area *control) in load_nested_vmcb_control() argument
290 copy_vmcb_control_area(&svm->nested.ctl, control); in load_nested_vmcb_control()
293 svm->nested.ctl.asid = control->asid; in load_nested_vmcb_control()
305 svm->nested.ctl.event_inj = svm->vmcb->control.event_inj; in sync_nested_vmcb_control()
306 svm->nested.ctl.event_inj_err = svm->vmcb->control.event_inj_err; in sync_nested_vmcb_control()
314 * svm->vmcb->control.int_ctl and possibly setting V_IRQ in sync_nested_vmcb_control()
323 svm->nested.ctl.int_ctl |= svm->vmcb->control.int_ctl & mask; in sync_nested_vmcb_control()
343 vmcb12->control.exit_int_info_err = in nested_vmcb_save_pending_event()
360 vmcb12->control.exit_int_info = exit_int_info; in nested_vmcb_save_pending_event()
443 svm->vmcb->control.tsc_offset = svm->vcpu.arch.tsc_offset = in nested_prepare_vmcb_control()
446 svm->vmcb->control.int_ctl = in nested_prepare_vmcb_control()
448 (svm->nested.hsave->control.int_ctl & int_ctl_vmcb01_bits); in nested_prepare_vmcb_control()
450 svm->vmcb->control.int_vector = svm->nested.ctl.int_vector; in nested_prepare_vmcb_control()
451 svm->vmcb->control.int_state = svm->nested.ctl.int_state; in nested_prepare_vmcb_control()
452 svm->vmcb->control.event_inj = svm->nested.ctl.event_inj; in nested_prepare_vmcb_control()
453 svm->vmcb->control.event_inj_err = svm->nested.ctl.event_inj_err; in nested_prepare_vmcb_control()
455 svm->vmcb->control.pause_filter_count = svm->nested.ctl.pause_filter_count; in nested_prepare_vmcb_control()
456 svm->vmcb->control.pause_filter_thresh = svm->nested.ctl.pause_filter_thresh; in nested_prepare_vmcb_control()
522 load_nested_vmcb_control(svm, &vmcb12->control); in nested_svm_vmrun()
526 vmcb12->control.exit_code = SVM_EXIT_ERR; in nested_svm_vmrun()
527 vmcb12->control.exit_code_hi = 0; in nested_svm_vmrun()
528 vmcb12->control.exit_info_1 = 0; in nested_svm_vmrun()
529 vmcb12->control.exit_info_2 = 0; in nested_svm_vmrun()
535 vmcb12->control.int_ctl, in nested_svm_vmrun()
536 vmcb12->control.event_inj, in nested_svm_vmrun()
537 vmcb12->control.nested_ctl); in nested_svm_vmrun()
539 trace_kvm_nested_intercepts(vmcb12->control.intercepts[INTERCEPT_CR] & 0xffff, in nested_svm_vmrun()
540 vmcb12->control.intercepts[INTERCEPT_CR] >> 16, in nested_svm_vmrun()
541 vmcb12->control.intercepts[INTERCEPT_EXCEPTION], in nested_svm_vmrun()
542 vmcb12->control.intercepts[INTERCEPT_WORD3], in nested_svm_vmrun()
543 vmcb12->control.intercepts[INTERCEPT_WORD4], in nested_svm_vmrun()
544 vmcb12->control.intercepts[INTERCEPT_WORD5]); in nested_svm_vmrun()
572 copy_vmcb_control_area(&hsave->control, &vmcb->control); in nested_svm_vmrun()
585 svm->vmcb->control.exit_code = SVM_EXIT_ERR; in nested_svm_vmrun()
586 svm->vmcb->control.exit_code_hi = 0; in nested_svm_vmrun()
587 svm->vmcb->control.exit_info_1 = 0; in nested_svm_vmrun()
588 svm->vmcb->control.exit_info_2 = 0; in nested_svm_vmrun()
662 vmcb12->control.int_state = vmcb->control.int_state; in nested_svm_vmexit()
663 vmcb12->control.exit_code = vmcb->control.exit_code; in nested_svm_vmexit()
664 vmcb12->control.exit_code_hi = vmcb->control.exit_code_hi; in nested_svm_vmexit()
665 vmcb12->control.exit_info_1 = vmcb->control.exit_info_1; in nested_svm_vmexit()
666 vmcb12->control.exit_info_2 = vmcb->control.exit_info_2; in nested_svm_vmexit()
668 if (vmcb12->control.exit_code != SVM_EXIT_ERR) in nested_svm_vmexit()
672 vmcb12->control.next_rip = vmcb->control.next_rip; in nested_svm_vmexit()
674 vmcb12->control.int_ctl = svm->nested.ctl.int_ctl; in nested_svm_vmexit()
675 vmcb12->control.tlb_ctl = svm->nested.ctl.tlb_ctl; in nested_svm_vmexit()
676 vmcb12->control.event_inj = svm->nested.ctl.event_inj; in nested_svm_vmexit()
677 vmcb12->control.event_inj_err = svm->nested.ctl.event_inj_err; in nested_svm_vmexit()
679 vmcb12->control.pause_filter_count = in nested_svm_vmexit()
680 svm->vmcb->control.pause_filter_count; in nested_svm_vmexit()
681 vmcb12->control.pause_filter_thresh = in nested_svm_vmexit()
682 svm->vmcb->control.pause_filter_thresh; in nested_svm_vmexit()
684 /* Restore the original control entries */ in nested_svm_vmexit()
685 copy_vmcb_control_area(&vmcb->control, &hsave->control); in nested_svm_vmexit()
690 svm->vmcb->control.tsc_offset = svm->vcpu.arch.tsc_offset = in nested_svm_vmexit()
711 svm->vmcb->control.exit_int_info = 0; in nested_svm_vmexit()
715 trace_kvm_nested_vmexit_inject(vmcb12->control.exit_code, in nested_svm_vmexit()
716 vmcb12->control.exit_info_1, in nested_svm_vmexit()
717 vmcb12->control.exit_info_2, in nested_svm_vmexit()
718 vmcb12->control.exit_int_info, in nested_svm_vmexit()
719 vmcb12->control.exit_int_info_err, in nested_svm_vmexit()
796 copy_vmcb_control_area(&vmcb->control, &hsave->control); in svm_leave_nested()
813 write = svm->vmcb->control.exit_info_1 & 1; in nested_svm_exit_handled_msr()
838 port = svm->vmcb->control.exit_info_1 >> 16; in nested_svm_intercept_ioio()
839 size = (svm->vmcb->control.exit_info_1 & SVM_IOIO_SIZE_MASK) >> in nested_svm_intercept_ioio()
855 u32 exit_code = svm->vmcb->control.exit_code; in nested_svm_intercept()
936 svm->vmcb->control.exit_code = SVM_EXIT_EXCP_BASE + nr; in nested_svm_inject_exception_vmexit()
937 svm->vmcb->control.exit_code_hi = 0; in nested_svm_inject_exception_vmexit()
940 svm->vmcb->control.exit_info_1 = svm->vcpu.arch.exception.error_code; in nested_svm_inject_exception_vmexit()
948 svm->vmcb->control.exit_info_2 = svm->vcpu.arch.apf.nested_apf_token; in nested_svm_inject_exception_vmexit()
950 svm->vmcb->control.exit_info_2 = svm->vcpu.arch.exception.payload; in nested_svm_inject_exception_vmexit()
952 svm->vmcb->control.exit_info_2 = svm->vcpu.arch.cr2; in nested_svm_inject_exception_vmexit()
968 svm->vmcb->control.exit_code = SVM_EXIT_SMI; in nested_svm_smi()
969 svm->vmcb->control.exit_info_1 = 0; in nested_svm_smi()
970 svm->vmcb->control.exit_info_2 = 0; in nested_svm_smi()
977 svm->vmcb->control.exit_code = SVM_EXIT_NMI; in nested_svm_nmi()
978 svm->vmcb->control.exit_info_1 = 0; in nested_svm_nmi()
979 svm->vmcb->control.exit_info_2 = 0; in nested_svm_nmi()
988 svm->vmcb->control.exit_code = SVM_EXIT_INTR; in nested_svm_intr()
989 svm->vmcb->control.exit_info_1 = 0; in nested_svm_intr()
990 svm->vmcb->control.exit_info_2 = 0; in nested_svm_intr()
1002 svm->vmcb->control.exit_code = SVM_EXIT_INIT; in nested_svm_init()
1003 svm->vmcb->control.exit_info_1 = 0; in nested_svm_init()
1004 svm->vmcb->control.exit_info_2 = 0; in nested_svm_init()
1068 u32 exit_code = svm->vmcb->control.exit_code; in nested_svm_exit_special()
1078 if (get_host_vmcb(svm)->control.intercepts[INTERCEPT_EXCEPTION] & in nested_svm_exit_special()
1140 if (copy_to_user(&user_vmcb->control, &svm->nested.ctl, in svm_get_nested_state()
1141 sizeof(user_vmcb->control))) in svm_get_nested_state()
1207 if (copy_from_user(ctl, &user_vmcb->control, sizeof(*ctl))) in svm_set_nested_state()
1235 * All checks done, we can enter guest mode. L1 control fields in svm_set_nested_state()
1240 copy_vmcb_control_area(&hsave->control, &svm->vmcb->control); in svm_set_nested_state()