Changeset 70006 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Dec 8, 2017 10:04:49 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp
r70005 r70006 133 133 134 134 /** 135 * 135 * Mandatory/unconditional guest control intercepts. 136 136 */ 137 137 #define HMSVM_MANDATORY_GUEST_CTRL_INTERCEPTS ( SVM_CTRL_INTERCEPT_INTR \ … … 159 159 | SVM_CTRL_INTERCEPT_MWAIT \ 160 160 | SVM_CTRL_INTERCEPT_XSETBV) 161 162 /** 163 * Mandatory/unconditional nested-guest control intercepts. 164 * 165 * SMIs can and do happen in normal operation. We need to intercept them while 166 * executing the nested-guest and make sure the host handles them. 167 */ 168 #define HMSVM_MANDATORY_NESTED_GUEST_CTRL_INTERCEPTS ( HMSVM_MANDATORY_GUEST_CTRL_INTERCEPTS \ 169 | SVM_CTRL_INTERCEPT_SMI) 161 170 162 171 /** @name VMCB Clean Bits. … … 1876 1885 pVmcbNstGst->ctrl.u32InterceptXcpt |= pVmcb->ctrl.u32InterceptXcpt; 1877 1886 pVmcbNstGst->ctrl.u64InterceptCtrl |= pVmcb->ctrl.u64InterceptCtrl 1878 | HMSVM_MANDATORY_ GUEST_CTRL_INTERCEPTS;1887 | HMSVM_MANDATORY_NESTED_GUEST_CTRL_INTERCEPTS; 1879 1888 1880 1889 /* … … 1886 1895 * need to be intercepted (they are included in HMSVM_MANDATORY_GUEST_CTRL_INTERCEPTS). 1887 1896 */ 1888 Assert( (pVmcbNstGst->ctrl.u64InterceptCtrl & HMSVM_MANDATORY_ GUEST_CTRL_INTERCEPTS)1889 == HMSVM_MANDATORY_ GUEST_CTRL_INTERCEPTS);1897 Assert( (pVmcbNstGst->ctrl.u64InterceptCtrl & HMSVM_MANDATORY_NESTED_GUEST_CTRL_INTERCEPTS) 1898 == HMSVM_MANDATORY_NESTED_GUEST_CTRL_INTERCEPTS); 1890 1899 pVmcbNstGst->ctrl.u64InterceptCtrl &= ~SVM_CTRL_INTERCEPT_VMMCALL; 1891 1900 … … 4893 4902 case SVM_EXIT_INTR: 4894 4903 case SVM_EXIT_NMI: 4895 { 4896 /* We shouldn't direct physical interrupts, NMIs to the nested-guest. */ 4904 case SVM_EXIT_SMI: 4905 { 4906 /* We shouldn't direct physical interrupts, NMIs, SMIs to the nested-guest. */ 4897 4907 return hmR0SvmExitIntr(pVCpu, pCtx, pSvmTransient); 4898 4908 } … … 5071 5081 } 5072 5082 5073 case SVM_EXIT_SMI:5074 5083 case SVM_EXIT_INIT: 5075 5084 case SVM_EXIT_NPF: /* We don't yet support nested-paging for nested-guests, so this should never happen. */ … … 5231 5240 { 5232 5241 /* 5233 * INIT signals, SMIshouldn't ever happen here.5242 * We don't intercept SMIs. As for INIT signals, it really shouldn't ever happen here. 5234 5243 * If it ever does, we want to know about it so log the exit code and bail. 5235 5244 */
Note:
See TracChangeset
for help on using the changeset viewer.