Index: /trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp	(revision 79763)
+++ /trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp	(revision 79764)
@@ -974,19 +974,21 @@
 static void hmR0VmxRemoveProcCtlsVmcs(PVMCPU pVCpu, PVMXTRANSIENT pVmxTransient, uint32_t uProcCtls)
 {
+    PVMXVMCSINFO pVmcsInfo = pVmxTransient->pVmcsInfo;
+    if (pVmcsInfo->u32ProcCtls & uProcCtls)
+    {
 #ifdef VBOX_WITH_NESTED_HWVIRT_VMX
-    bool const fRemoveCtls = !pVmxTransient->fIsNestedGuest
-                           ? true
-                           : !CPUMIsGuestVmxProcCtlsSet(pVCpu, &pVCpu->cpum.GstCtx, VMX_PROC_CTLS_RDTSC_EXIT);
+        bool const fRemoveCtls = !pVmxTransient->fIsNestedGuest
+                               ? true
+                               : !CPUMIsGuestVmxProcCtlsSet(pVCpu, &pVCpu->cpum.GstCtx, uProcCtls);
 #else
-    NOREF(pVCpu);
-    bool const fRemoveCtls = true;
+        NOREF(pVCpu);
+        bool const fRemoveCtls = true;
 #endif
-    PVMXVMCSINFO pVmcsInfo = pVmxTransient->pVmcsInfo;
-    if (   fRemoveCtls
-        && (pVmcsInfo->u32ProcCtls & uProcCtls))
-    {
-        pVmcsInfo->u32ProcCtls &= ~uProcCtls;
-        int rc = VMXWriteVmcs32(VMX_VMCS32_CTRL_PROC_EXEC, pVmcsInfo->u32ProcCtls);
-        AssertRC(rc);
+        if (fRemoveCtls)
+        {
+            pVmcsInfo->u32ProcCtls &= ~uProcCtls;
+            int rc = VMXWriteVmcs32(VMX_VMCS32_CTRL_PROC_EXEC, pVmcsInfo->u32ProcCtls);
+            AssertRC(rc);
+        }
     }
 }
@@ -7728,4 +7730,11 @@
 
 
+/**
+ * Fixes up attributes for the specified segment register.
+ *
+ * @param   pVCpu       The cross context virtual CPU structure.
+ * @param   pSelReg     The segment register that needs fixing.
+ * @param   idxSel      The VMCS field for the corresponding segment register.
+ */
 static void hmR0VmxFixUnusableSegRegAttr(PVMCPU pVCpu, PCPUMSELREG pSelReg, uint32_t idxSel)
 {
