Changeset 70002 in vbox for trunk/src/VBox/VMM/VMMR0
- Timestamp:
- Dec 8, 2017 6:29:12 AM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 119526
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp
r70000 r70002 137 137 #define HMSVM_MANDATORY_GUEST_CTRL_INTERCEPTS ( SVM_CTRL_INTERCEPT_INTR \ 138 138 | SVM_CTRL_INTERCEPT_NMI \ 139 | SVM_CTRL_INTERCEPT_SMI \ 139 140 | SVM_CTRL_INTERCEPT_INIT \ 140 141 | SVM_CTRL_INTERCEPT_RDPMC \ … … 158 159 | SVM_CTRL_INTERCEPT_MWAIT \ 159 160 | SVM_CTRL_INTERCEPT_XSETBV) 160 161 /**162 * Mandatory/unconditional nested-guest control intercepts.163 */164 #define HMSVM_MANDATORY_NESTED_GUEST_CTRL_INTERCEPTS ( HMSVM_MANDATORY_GUEST_CTRL_INTERCEPTS \165 | SVM_CTRL_INTERCEPT_SMI)166 161 167 162 /** @name VMCB Clean Bits. … … 1908 1903 pVmcbNstGst->ctrl.u32InterceptXcpt |= pVmcb->ctrl.u32InterceptXcpt; 1909 1904 pVmcbNstGst->ctrl.u64InterceptCtrl |= pVmcb->ctrl.u64InterceptCtrl 1910 | HMSVM_MANDATORY_ NESTED_GUEST_CTRL_INTERCEPTS;1905 | HMSVM_MANDATORY_GUEST_CTRL_INTERCEPTS; 1911 1906 1912 1907 /* … … 3221 3216 * the guest's PIC/APIC). 3222 3217 * 3223 * External intercepts from the physical CPU are -always- intercepted when3224 * executing using hardware-assisted SVM, see HMSVM_MANDATORY_NESTED_GUEST_CTRL_INTERCEPTS.3218 * External intercepts, NMI, SMI etc. from the physical CPU are -always- intercepted 3219 * when executing using hardware-assisted SVM, see HMSVM_MANDATORY_GUEST_CTRL_INTERCEPTS. 3225 3220 * 3226 3221 * External interrupts that are generated for the outer guest may be intercepted … … 4923 4918 4924 4919 case SVM_EXIT_INTR: 4925 {4926 /* We shouldn't direct physical interrupts to the nested-guest. */4927 return hmR0SvmExitIntr(pVCpu, pCtx, pSvmTransient);4928 }4929 4930 4920 case SVM_EXIT_FERR_FREEZE: 4931 {4932 if (HMIsGuestSvmCtrlInterceptSet(pVCpu, pCtx, SVM_CTRL_INTERCEPT_FERR_FREEZE))4933 return HM_SVM_VMEXIT_NESTED(pVCpu, uExitCode, uExitInfo1, uExitInfo2);4934 return hmR0SvmExitIntr(pVCpu, pCtx, pSvmTransient);4935 }4936 4937 4921 case SVM_EXIT_NMI: 4938 4922 { 4939 if (HMIsGuestSvmCtrlInterceptSet(pVCpu, pCtx, SVM_CTRL_INTERCEPT_NMI)) 4940 return HM_SVM_VMEXIT_NESTED(pVCpu, uExitCode, uExitInfo1, uExitInfo2); 4923 /* We shouldn't direct physical interrupts, NMI, FERR to the nested-guest. */ 4941 4924 return hmR0SvmExitIntr(pVCpu, pCtx, pSvmTransient); 4942 4925 } … … 5282 5265 { 5283 5266 /* 5284 * We don't intercept SMIs. As for INIT signals, it reallyshouldn't ever happen here.5267 * INIT signals, SMI shouldn't ever happen here. 5285 5268 * If it ever does, we want to know about it so log the exit code and bail. 5286 5269 */ … … 7241 7224 { 7242 7225 /* Convert a #MF into a FERR -> IRQ 13. See @bugref{6117}. */ 7226 /** @todo FERR intercept when in nested-guest mode? */ 7243 7227 rc = PDMIsaSetIrq(pVCpu->CTX_SUFF(pVM), 13, 1, 0 /* uTagSrc */); 7244 7228 if (RT_SUCCESS(rc))
Note:
See TracChangeset
for help on using the changeset viewer.