Index: /trunk/include/VBox/err.h
===================================================================
--- /trunk/include/VBox/err.h	(revision 24026)
+++ /trunk/include/VBox/err.h	(revision 24027)
@@ -1389,10 +1389,12 @@
 /** Unable to start VM execution. */
 #define VERR_SVM_UNABLE_TO_START_VM                 (-4050)
-/** SVM bit not set in K6_EFER MSR */
+/** AMD-V bit not set in K6_EFER MSR */
 #define VERR_SVM_ILLEGAL_EFER_MSR                   (-4051)
-/** SVM CPU extension not available. */
+/** AMD-V CPU extension not available. */
 #define VERR_SVM_NO_SVM                             (-4052)
-/** SVM CPU extension disabled (by BIOS). */
+/** AMD-V CPU extension disabled (by BIOS). */
 #define VERR_SVM_DISABLED                           (-4053)
+/** AMD-V CPU extension in-use. */
+#define VERR_SVM_IN_USE                             (-4054)
 /** @} */
 
Index: /trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp	(revision 24026)
+++ /trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp	(revision 24027)
@@ -83,8 +83,10 @@
 #endif
 
+    uint64_t val = ASMRdMsr(MSR_K6_EFER);
+    if (val & MSR_K6_EFER_SVME)
+        return VERR_SVM_IN_USE;
+
     /* Turn on AMD-V in the EFER MSR. */
-    uint64_t val = ASMRdMsr(MSR_K6_EFER);
-    if (!(val & MSR_K6_EFER_SVME))
-        ASMWrMsr(MSR_K6_EFER, val | MSR_K6_EFER_SVME);
+    ASMWrMsr(MSR_K6_EFER, val | MSR_K6_EFER_SVME);
 
     /* Write the physical page address where the CPU will store the host state while executing the VM. */
Index: /trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp	(revision 24026)
+++ /trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp	(revision 24027)
@@ -123,4 +123,7 @@
      * (which can have very bad consequences!!!)
      */
+
+    if (ASMGetCR4() & X86_CR4_VMXE))
+        return VERR_VMX_IN_VMX_ROOT_MODE;
 
     /* Make sure the VMX instructions don't cause #UD faults. */
