Changeset 80454 in vbox
- Timestamp:
- Aug 28, 2019 4:31:26 AM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 132945
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp
r80333 r80454 965 965 /* If you add any exceptions here, make sure to update hmR0SvmHandleExit(). */ 966 966 pVmcbCtrl0->u32InterceptXcpt |= RT_BIT_32(X86_XCPT_BP) 967 968 969 970 971 972 973 974 975 967 | RT_BIT_32(X86_XCPT_DE) 968 | RT_BIT_32(X86_XCPT_NM) 969 | RT_BIT_32(X86_XCPT_UD) 970 | RT_BIT_32(X86_XCPT_NP) 971 | RT_BIT_32(X86_XCPT_SS) 972 | RT_BIT_32(X86_XCPT_GP) 973 | RT_BIT_32(X86_XCPT_PF) 974 | RT_BIT_32(X86_XCPT_MF) 975 ; 976 976 #endif 977 977 … … 997 997 if (!fUseVirtVmsaveVmload) 998 998 pVmcbCtrl0->u64InterceptCtrl |= SVM_CTRL_INTERCEPT_VMSAVE 999 |SVM_CTRL_INTERCEPT_VMLOAD;999 | SVM_CTRL_INTERCEPT_VMLOAD; 1000 1000 1001 1001 /* Virtual GIF. */ … … 1003 1003 if (!fUseVGif) 1004 1004 pVmcbCtrl0->u64InterceptCtrl |= SVM_CTRL_INTERCEPT_CLGI 1005 |SVM_CTRL_INTERCEPT_STGI;1005 | SVM_CTRL_INTERCEPT_STGI; 1006 1006 #endif 1007 1007 … … 1041 1041 /* Intercept INVLPG and task switches (may change CR3, EFLAGS, LDT). */ 1042 1042 pVmcbCtrl0->u64InterceptCtrl |= SVM_CTRL_INTERCEPT_INVLPG 1043 |SVM_CTRL_INTERCEPT_TASK_SWITCH;1043 | SVM_CTRL_INTERCEPT_TASK_SWITCH; 1044 1044 1045 1045 /* Page faults must be intercepted to implement shadow paging. */ … … 1445 1445 { 1446 1446 uShadowCr0 |= X86_CR0_PG /* Use shadow page tables. */ 1447 | X86_CR0_WP;/* Guest CPL 0 writes to its read-only pages should cause a #PF #VMEXIT. */1447 | X86_CR0_WP; /* Guest CPL 0 writes to its read-only pages should cause a #PF #VMEXIT. */ 1448 1448 } 1449 1449 … … 2123 2123 #ifndef HMSVM_ALWAYS_TRAP_ALL_XCPTS 2124 2124 pVmcbNstGstCtrl->u32InterceptXcpt |= pVmcb->ctrl.u32InterceptXcpt 2125 2126 2127 2125 & ~( RT_BIT(X86_XCPT_UD) 2126 | RT_BIT(X86_XCPT_BP) 2127 | (pVCpu->hm.s.fTrapXcptGpForLovelyMesaDrv ? RT_BIT(X86_XCPT_GP) : 0)); 2128 2128 #else 2129 2129 pVmcbNstGstCtrl->u32InterceptXcpt |= pVmcb->ctrl.u32InterceptXcpt; … … 2142 2142 pVmcbNstGstCtrl->u64InterceptCtrl |= (pVmcb->ctrl.u64InterceptCtrl & ~( SVM_CTRL_INTERCEPT_VINTR 2143 2143 | SVM_CTRL_INTERCEPT_VMMCALL)) 2144 |HMSVM_MANDATORY_GUEST_CTRL_INTERCEPTS;2144 | HMSVM_MANDATORY_GUEST_CTRL_INTERCEPTS; 2145 2145 2146 2146 Assert( (pVmcbNstGstCtrl->u64InterceptCtrl & HMSVM_MANDATORY_GUEST_CTRL_INTERCEPTS) … … 2505 2505 if (!pVCpu->CTX_SUFF(pVM)->cpum.ro.GuestFeatures.fSvmVirtVmsaveVmload) 2506 2506 pVmcbNstGstCtrl->u64InterceptCtrl |= SVM_CTRL_INTERCEPT_VMSAVE 2507 2507 | SVM_CTRL_INTERCEPT_VMLOAD; 2508 2508 2509 2509 /* … … 2513 2513 if (!pVCpu->CTX_SUFF(pVM)->cpum.ro.GuestFeatures.fSvmVGif) 2514 2514 pVmcbNstGstCtrl->u64InterceptCtrl |= SVM_CTRL_INTERCEPT_CLGI 2515 2515 | SVM_CTRL_INTERCEPT_STGI; 2516 2516 2517 2517 /* Merge the guest and nested-guest intercepts. */
Note:
See TracChangeset
for help on using the changeset viewer.