Index: /trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp	(revision 45466)
+++ /trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp	(revision 45467)
@@ -1542,5 +1542,4 @@
     }
 
-    val &= zap;
     int rc = VMXWriteVmcs32(VMX_VMCS32_CTRL_PIN_EXEC_CONTROLS, val);
     AssertRCReturn(rc, rc);
@@ -1649,5 +1648,4 @@
     }
 
-    val &= zap;
     rc = VMXWriteVmcs32(VMX_VMCS32_CTRL_PROC_EXEC_CONTROLS, val);
     AssertRCReturn(rc, rc);
@@ -1712,5 +1710,4 @@
         }
 
-        val &= zap;
         rc = VMXWriteVmcs32(VMX_VMCS32_CTRL_PROC_EXEC_CONTROLS2, val);
         AssertRCReturn(rc, rc);
@@ -2227,6 +2224,9 @@
 
     /* Shouldn't ever happen but there -is- a number. We're well within the recommended 512. */
-    if (idxHostMsr > MSR_IA32_VMX_MISC_MAX_MSR(pVM->hm.s.vmx.msr.vmx_misc))
+    if (RT_UNLIKELY(idxHostMsr > MSR_IA32_VMX_MISC_MAX_MSR(pVM->hm.s.vmx.msr.vmx_misc)))
+    {
+        LogRel(("idxHostMsr=%u Cpu=%u\n", idxHostMsr, (unsigned)MSR_IA32_VMX_MISC_MAX_MSR(pVM->hm.s.vmx.msr.vmx_misc)));
         return VERR_HM_UNSUPPORTED_CPU_FEATURE_COMBO;
+    }
 
     int rc = VMXWriteVmcs32(VMX_VMCS32_CTRL_EXIT_MSR_LOAD_COUNT, idxHostMsr);
@@ -2308,5 +2308,4 @@
         }
 
-        val &= zap;
         rc = VMXWriteVmcs32(VMX_VMCS32_CTRL_ENTRY_CONTROLS, val);
         AssertRCReturn(rc, rc);
@@ -2375,6 +2374,6 @@
         }
 
-        val &= zap;
         rc = VMXWriteVmcs32(VMX_VMCS32_CTRL_EXIT_CONTROLS, val);
+        AssertRCReturn(rc, rc);
 
         /* Update VCPU with the currently set VM-exit controls. */
