Index: /trunk/include/VBox/vmm/cpum.h
===================================================================
--- /trunk/include/VBox/vmm/cpum.h	(revision 44077)
+++ /trunk/include/VBox/vmm/cpum.h	(revision 44078)
@@ -415,5 +415,5 @@
 VMMR3DECL(int)          CPUMR3Init(PVM pVM);
 VMMR3DECL(int)          CPUMR3InitCompleted(PVM pVM);
-VMMR3DECL(int)          CPUMR3LogCpuIds(PVM pVM);
+VMMR3DECL(void)         CPUMR3LogCpuIds(PVM pVM);
 VMMR3DECL(void)         CPUMR3Relocate(PVM pVM);
 VMMR3DECL(int)          CPUMR3Term(PVM pVM);
Index: /trunk/src/VBox/VMM/VMMR0/CPUMR0.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR0/CPUMR0.cpp	(revision 44077)
+++ /trunk/src/VBox/VMM/VMMR0/CPUMR0.cpp	(revision 44078)
@@ -114,4 +114,6 @@
  * @{bugref 5436}.
  *
+ * @note This function might be called simultaneously on more than one CPU!
+ *
  * @param   idCpu       The identifier for the CPU the function is called on.
  * @param   pvUser1     Pointer to the VM structure.
@@ -148,6 +150,6 @@
             paLeaves = &pCPUM->aGuestCpuIdCentaur[uLeave - 0xc0000000];
         /* unify important bits */
-        paLeaves->ecx &= (ecx | ~aCpuidUnify[i].ecx);
-        paLeaves->edx &= (edx | ~aCpuidUnify[i].edx);
+        ASMAtomicAndU32(&paLeaves->ecx, ecx | ~aCpuidUnify[i].ecx);
+        ASMAtomicAndU32(&paLeaves->edx, edx | ~aCpuidUnify[i].edx);
     }
 }
Index: /trunk/src/VBox/VMM/VMMR3/CPUM.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/CPUM.cpp	(revision 44077)
+++ /trunk/src/VBox/VMM/VMMR3/CPUM.cpp	(revision 44078)
@@ -4394,8 +4394,7 @@
  * Called when the ring-0 init phases comleted.
  *
- * @returns VBox status code.
  * @param   pVM                 Pointer to the VM.
  */
-VMMR3DECL(int) CPUMR3LogCpuIds(PVM pVM)
+VMMR3DECL(void) CPUMR3LogCpuIds(PVM pVM)
 {
     /*
@@ -4413,4 +4412,3 @@
     RTLogRelSetBuffering(fOldBuffered);
     LogRel(("******************** End of CPUID dump **********************\n"));
-    return VINF_SUCCESS;
 }
Index: /trunk/src/VBox/VMM/VMMR3/VMM.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/VMM.cpp	(revision 44077)
+++ /trunk/src/VBox/VMM/VMMR3/VMM.cpp	(revision 44078)
@@ -694,7 +694,5 @@
              * CPUM's post-initialization (print CPUIDs).
              */
-            rc = CPUMR3LogCpuIds(pVM);
-            AssertRCReturn(rc, rc);
-
+            CPUMR3LogCpuIds(pVM);
             break;
         }
