Lines Matching refs:control
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()
137 c = &svm->vmcb->control; in recalc_intercepts()
138 h = &svm->vmcb01.ptr->control; in recalc_intercepts()
311 svm->vmcb->control.msrpm_base_pa = __sme_set(__pa(svm->nested.msrpm)); in nested_svm_merge_msrpm()
328 struct vmcb_ctrl_area_cached *control) in __nested_vmcb_check_controls() argument
330 if (CC(!vmcb12_is_intercept(control, INTERCEPT_VMRUN))) in __nested_vmcb_check_controls()
333 if (CC(control->asid == 0)) in __nested_vmcb_check_controls()
336 if (CC((control->nested_ctl & SVM_NESTED_CTL_NP_ENABLE) && !npt_enabled)) in __nested_vmcb_check_controls()
339 if (CC(!nested_svm_check_bitmap_pa(vcpu, control->msrpm_base_pa, in __nested_vmcb_check_controls()
342 if (CC(!nested_svm_check_bitmap_pa(vcpu, control->iopm_base_pa, in __nested_vmcb_check_controls()
346 if (CC((control->int_ctl & V_NMI_ENABLE_MASK) && in __nested_vmcb_check_controls()
347 !vmcb12_is_intercept(control, INTERCEPT_NMI))) { in __nested_vmcb_check_controls()
454 struct vmcb_control_area *control) in nested_copy_vmcb_control_to_cache() argument
456 __nested_copy_vmcb_control_to_cache(&svm->vcpu, &svm->nested.ctl, control); in nested_copy_vmcb_control_to_cache()
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()
532 vmcb12->control.exit_int_info_err = in nested_save_pending_event_to_vmcb12()
549 vmcb12->control.exit_int_info = exit_int_info; in nested_save_pending_event_to_vmcb12()
674 } else if (unlikely(vmcb01->control.virt_ext & LBR_CTL_ENABLE_MASK)) { in nested_vmcb02_prepare_save()
733 if (vmcb01->control.int_ctl & V_NMI_PENDING_MASK) { in nested_vmcb02_prepare_control()
744 vmcb02->control.nested_ctl = vmcb01->control.nested_ctl; in nested_vmcb02_prepare_control()
745 vmcb02->control.iopm_base_pa = vmcb01->control.iopm_base_pa; in nested_vmcb02_prepare_control()
746 vmcb02->control.msrpm_base_pa = vmcb01->control.msrpm_base_pa; in nested_vmcb02_prepare_control()
771 vmcb02->control.bus_lock_counter = 1; in nested_vmcb02_prepare_control()
773 vmcb02->control.bus_lock_counter = 0; in nested_vmcb02_prepare_control()
778 vmcb02->control.tlb_ctl = TLB_CONTROL_DO_NOTHING; in nested_vmcb02_prepare_control()
789 vmcb02->control.tsc_offset = vcpu->arch.tsc_offset; in nested_vmcb02_prepare_control()
795 vmcb02->control.int_ctl = in nested_vmcb02_prepare_control()
797 (vmcb01->control.int_ctl & int_ctl_vmcb01_bits); in nested_vmcb02_prepare_control()
799 vmcb02->control.int_vector = svm->nested.ctl.int_vector; in nested_vmcb02_prepare_control()
800 vmcb02->control.int_state = svm->nested.ctl.int_state; in nested_vmcb02_prepare_control()
801 vmcb02->control.event_inj = svm->nested.ctl.event_inj; in nested_vmcb02_prepare_control()
802 vmcb02->control.event_inj_err = svm->nested.ctl.event_inj_err; in nested_vmcb02_prepare_control()
813 vmcb02->control.next_rip = svm->nested.ctl.next_rip; in nested_vmcb02_prepare_control()
815 vmcb02->control.next_rip = vmcb12_rip; in nested_vmcb02_prepare_control()
817 svm->nmi_l1_to_l2 = is_evtinj_nmi(vmcb02->control.event_inj); in nested_vmcb02_prepare_control()
818 if (is_evtinj_soft(vmcb02->control.event_inj)) { in nested_vmcb02_prepare_control()
828 vmcb02->control.virt_ext = vmcb01->control.virt_ext & in nested_vmcb02_prepare_control()
831 vmcb02->control.virt_ext |= in nested_vmcb02_prepare_control()
835 vmcb02->control.virt_ext |= VIRTUAL_VMLOAD_VMSAVE_ENABLE_MASK; in nested_vmcb02_prepare_control()
847 vmcb02->control.pause_filter_count = pause_count12; in nested_vmcb02_prepare_control()
848 vmcb02->control.pause_filter_thresh = pause_thresh12; in nested_vmcb02_prepare_control()
852 vmcb02->control.pause_filter_count = vmcb01->control.pause_filter_count; in nested_vmcb02_prepare_control()
853 vmcb02->control.pause_filter_thresh = vmcb01->control.pause_filter_thresh; in nested_vmcb02_prepare_control()
858 vmcb02->control.pause_filter_count = 0; in nested_vmcb02_prepare_control()
860 vmcb02->control.pause_filter_thresh = 0; in nested_vmcb02_prepare_control()
892 vmcb12->control.int_ctl, in enter_svm_guest_mode()
893 vmcb12->control.event_inj, in enter_svm_guest_mode()
894 vmcb12->control.nested_ctl, in enter_svm_guest_mode()
895 vmcb12->control.nested_cr3, in enter_svm_guest_mode()
899 trace_kvm_nested_intercepts(vmcb12->control.intercepts[INTERCEPT_CR] & 0xffff, in enter_svm_guest_mode()
900 vmcb12->control.intercepts[INTERCEPT_CR] >> 16, in enter_svm_guest_mode()
901 vmcb12->control.intercepts[INTERCEPT_EXCEPTION], in enter_svm_guest_mode()
902 vmcb12->control.intercepts[INTERCEPT_WORD3], in enter_svm_guest_mode()
903 vmcb12->control.intercepts[INTERCEPT_WORD4], in enter_svm_guest_mode()
904 vmcb12->control.intercepts[INTERCEPT_WORD5]); in enter_svm_guest_mode()
977 nested_copy_vmcb_control_to_cache(svm, &vmcb12->control); in nested_svm_vmrun()
982 vmcb12->control.exit_code = SVM_EXIT_ERR; in nested_svm_vmrun()
983 vmcb12->control.exit_code_hi = 0; in nested_svm_vmrun()
984 vmcb12->control.exit_info_1 = 0; in nested_svm_vmrun()
985 vmcb12->control.exit_info_2 = 0; 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()
1114 vmcb12->control.int_state = vmcb02->control.int_state; in nested_svm_vmexit()
1115 vmcb12->control.exit_code = vmcb02->control.exit_code; in nested_svm_vmexit()
1116 vmcb12->control.exit_code_hi = vmcb02->control.exit_code_hi; in nested_svm_vmexit()
1117 vmcb12->control.exit_info_1 = vmcb02->control.exit_info_1; in nested_svm_vmexit()
1118 vmcb12->control.exit_info_2 = vmcb02->control.exit_info_2; in nested_svm_vmexit()
1120 if (vmcb12->control.exit_code != SVM_EXIT_ERR) in nested_svm_vmexit()
1124 vmcb12->control.next_rip = vmcb02->control.next_rip; in nested_svm_vmexit()
1126 vmcb12->control.int_ctl = svm->nested.ctl.int_ctl; in nested_svm_vmexit()
1127 vmcb12->control.event_inj = svm->nested.ctl.event_inj; in nested_svm_vmexit()
1128 vmcb12->control.event_inj_err = svm->nested.ctl.event_inj_err; in nested_svm_vmexit()
1131 vmcb01->control.pause_filter_count = vmcb02->control.pause_filter_count; in nested_svm_vmexit()
1140 if (!vmcb02->control.bus_lock_counter) in nested_svm_vmexit()
1175 } else if (unlikely(vmcb01->control.virt_ext & LBR_CTL_ENABLE_MASK)) { in nested_svm_vmexit()
1181 if (vmcb02->control.int_ctl & V_NMI_BLOCKING_MASK) in nested_svm_vmexit()
1182 vmcb01->control.int_ctl |= V_NMI_BLOCKING_MASK; in nested_svm_vmexit()
1184 vmcb01->control.int_ctl &= ~V_NMI_BLOCKING_MASK; in nested_svm_vmexit()
1188 vmcb01->control.int_ctl |= V_NMI_PENDING_MASK; in nested_svm_vmexit()
1190 vmcb01->control.int_ctl &= ~V_NMI_PENDING_MASK; in nested_svm_vmexit()
1199 vmcb01->control.exit_int_info = 0; in nested_svm_vmexit()
1202 if (vmcb01->control.tsc_offset != svm->vcpu.arch.tsc_offset) { in nested_svm_vmexit()
1203 vmcb01->control.tsc_offset = svm->vcpu.arch.tsc_offset; in nested_svm_vmexit()
1229 trace_kvm_nested_vmexit_inject(vmcb12->control.exit_code, in nested_svm_vmexit()
1230 vmcb12->control.exit_info_1, in nested_svm_vmexit()
1231 vmcb12->control.exit_info_2, in nested_svm_vmexit()
1232 vmcb12->control.exit_int_info, in nested_svm_vmexit()
1233 vmcb12->control.exit_int_info_err, in nested_svm_vmexit()
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()
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()
1604 u32 exit_code = svm->vmcb->control.exit_code; in nested_svm_exit_special()
1615 if (svm->vmcb01.ptr->control.intercepts[INTERCEPT_EXCEPTION] & in nested_svm_exit_special()
1738 r = copy_to_user(&user_vmcb->control, ctl, in svm_get_nested_state()
1739 sizeof(user_vmcb->control)); in svm_get_nested_state()
1808 if (copy_from_user(ctl, &user_vmcb->control, sizeof(*ctl))) in svm_set_nested_state()