Changeset 87548 in vbox
- Timestamp:
- Feb 2, 2021 6:16:20 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 142574
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r87547 r87548 4128 4128 * 4129 4129 * @returns VBox status code. 4130 * @param pVCpu The cross context virtual CPU structure.4131 4130 * @param pVmcsInfo The VMCS info. object. 4132 4131 */ 4133 static int hmR0VmxSetupVmcsCtlsNested(PVM CPUCC pVCpu, PVMXVMCSINFO pVmcsInfo)4132 static int hmR0VmxSetupVmcsCtlsNested(PVMXVMCSINFO pVmcsInfo) 4134 4133 { 4135 4134 Assert(pVmcsInfo->u64VmcsLinkPtr == NIL_RTHCPHYS); … … 4148 4147 return VINF_SUCCESS; 4149 4148 } 4150 else 4151 LogRelFunc(("Failed to set up the VMCS link pointer in the nested-guest VMCS. rc=%Rrc\n", rc)); 4149 LogRelFunc(("Failed to set up the VMCS link pointer in the nested-guest VMCS. rc=%Rrc\n", rc)); 4152 4150 return rc; 4153 4151 } … … 4306 4304 { 4307 4305 #ifdef VBOX_WITH_NESTED_HWVIRT_VMX 4308 rc = hmR0VmxSetupVmcsCtlsNested(pV Cpu, pVmcsInfo);4306 rc = hmR0VmxSetupVmcsCtlsNested(pVmcsInfo); 4309 4307 if (RT_SUCCESS(rc)) 4310 4308 { /* likely */ } … … 8241 8239 * cause a VM-exit as soon as the guest is in a state to receive interrupts. 8242 8240 * 8243 * @param pVCpu The cross context virtual CPU structure.8244 8241 * @param pVmcsInfo The VMCS info. object. 8245 8242 */ 8246 static void hmR0VmxSetIntWindowExitVmcs(PVM CPUCC pVCpu, PVMXVMCSINFO pVmcsInfo)8243 static void hmR0VmxSetIntWindowExitVmcs(PVMXVMCSINFO pVmcsInfo) 8247 8244 { 8248 8245 if (g_HmMsrs.u.vmx.ProcCtls.n.allowed1 & VMX_PROC_CTLS_INT_WINDOW_EXIT) … … 8278 8275 * cause a VM-exit as soon as the guest is in a state to receive NMIs. 8279 8276 * 8280 * @param pVCpu The cross context virtual CPU structure.8281 8277 * @param pVmcsInfo The VMCS info. object. 8282 8278 */ 8283 static void hmR0VmxSetNmiWindowExitVmcs(PVM CPUCC pVCpu, PVMXVMCSINFO pVmcsInfo)8279 static void hmR0VmxSetNmiWindowExitVmcs(PVMXVMCSINFO pVmcsInfo) 8284 8280 { 8285 8281 if (g_HmMsrs.u.vmx.ProcCtls.n.allowed1 & VMX_PROC_CTLS_NMI_WINDOW_EXIT) … … 9035 9031 } 9036 9032 else if (!fIsNestedGuest) 9037 hmR0VmxSetNmiWindowExitVmcs(pV Cpu, pVmcsInfo);9033 hmR0VmxSetNmiWindowExitVmcs(pVmcsInfo); 9038 9034 } 9039 9035 … … 9107 9103 return VINF_SUCCESS; 9108 9104 } 9109 elseif (!fIsNestedGuest)9110 hmR0VmxSetIntWindowExitVmcs(pV Cpu, pVmcsInfo);9105 if (!fIsNestedGuest) 9106 hmR0VmxSetIntWindowExitVmcs(pVmcsInfo); 9111 9107 } 9112 9108 } … … 9119 9115 */ 9120 9116 if (VMCPU_FF_IS_SET(pVCpu, VMCPU_FF_INTERRUPT_NMI)) 9121 hmR0VmxSetNmiWindowExitVmcs(pV Cpu, pVmcsInfo);9117 hmR0VmxSetNmiWindowExitVmcs(pVmcsInfo); 9122 9118 else if ( VMCPU_FF_IS_ANY_SET(pVCpu, VMCPU_FF_INTERRUPT_APIC | VMCPU_FF_INTERRUPT_PIC) 9123 9119 && !pVCpu->hm.s.fSingleInstruction) 9124 hmR0VmxSetIntWindowExitVmcs(pV Cpu, pVmcsInfo);9120 hmR0VmxSetIntWindowExitVmcs(pVmcsInfo); 9125 9121 } 9126 9122 /* else: for nested-guests, NMI/interrupt-window exiting will be picked up when merging VMCS controls. */
Note:
See TracChangeset
for help on using the changeset viewer.