Index: /trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp	(revision 19791)
+++ /trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp	(revision 19792)
@@ -287,5 +287,5 @@
                                                GstPte.u & X86_PTE_PG_MASK);
 #  endif
-                    uShw.pPT->a[iShw].u = 0;
+                    ASMAtomicWriteSize(&uShw.pPT->a[iShw], 0);
                 }
                 break;
@@ -312,5 +312,5 @@
                                                    GstPte.u & X86_PTE_PG_MASK);
 #  endif
-                        uShw.pPTPae->a[iShw].u = 0;
+                        ASMAtomicWriteSize(&uShw.pPTPae->a[iShw], 0);
                     }
                 }
@@ -350,5 +350,5 @@
                                         pPage->idx,
                                         iShw + i);
-                            uShw.pPDPae->a[iShw+i].u = 0;
+                            ASMAtomicWriteSize(&uShw.pPDPae->a[iShw+i], 0);
                         }
 
@@ -378,5 +378,5 @@
                                                 pPage->idx,
                                                 iShw2);
-                                    uShw.pPDPae->a[iShw2].u = 0;
+                                    ASMAtomicWriteSize(&uShw.pPDPae->a[iShw2].u, 0);
                                 }
                             }
@@ -403,5 +403,5 @@
                                                GstPte.u & X86_PTE_PAE_PG_MASK);
 #  endif
-                    uShw.pPTPae->a[iShw].u = 0;
+                    ASMAtomicWriteSize(&uShw.pPTPae->a[iShw].u, 0);
                 }
 
@@ -429,5 +429,5 @@
                                                    GstPte.u & X86_PTE_PAE_PG_MASK);
 #  endif
-                        uShw.pPTPae->a[iShw2].u = 0;
+                        ASMAtomicWriteSize(&uShw.pPTPae->a[iShw2].u ,0);
                     }
                 }
@@ -462,5 +462,5 @@
                                     pPage->idx,
                                     iShw);
-                        uShw.pPD->a[iShw].u = 0;
+                        ASMAtomicWriteSize(&uShw.pPD->a[iShw].u, 0);
                     }
                 }
@@ -495,5 +495,5 @@
                                             pPage->idx,
                                             iShw2);
-                                uShw.pPD->a[iShw2].u = 0;
+                                ASMAtomicWriteSize(&uShw.pPD->a[iShw2].u, 0);
                             }
                         }
@@ -509,5 +509,5 @@
 # endif
                     pgmPoolFree(pVM, uShw.pPD->a[iShw].u & X86_PDE_PG_MASK, pPage->idx, iShw);
-                    uShw.pPD->a[iShw].u = 0;
+                    ASMAtomicWriteSize(&uShw.pPD->a[iShw].u, 0);
                 }
 #endif
@@ -545,5 +545,5 @@
                                     pPage->idx,
                                     iShw);
-                        uShw.pPDPae->a[iShw].u = 0;
+                        ASMAtomicWriteSize(&uShw.pPDPae->a[iShw].u, 0);
                     }
                 }
@@ -577,5 +577,5 @@
                                     pPage->idx,
                                     iShw2);
-                        uShw.pPDPae->a[iShw2].u = 0;
+                        ASMAtomicWriteSize(&uShw.pPDPae->a[iShw2].u, 0);
                     }
                 }
@@ -617,5 +617,5 @@
                                     pPage->idx,
                                     iShw);
-                        uShw.pPDPT->a[iShw].u = 0;
+                        ASMAtomicWriteSize(&uShw.pPDPT->a[iShw].u, 0);
                     }
 
@@ -649,5 +649,5 @@
                                             pPage->idx,
                                             iShw2);
-                                uShw.pPDPT->a[iShw2].u = 0;
+                                ASMAtomicWriteSize(&uShw.pPDPT->a[iShw2].u, 0);
                             }
                         }
@@ -670,5 +670,5 @@
                                 pPage->idx,
                                 iShw);
-                    uShw.pPDPae->a[iShw].u = 0;
+                    ASMAtomicWriteSize(&uShw.pPDPae->a[iShw].u, 0);
                 }
                 /* paranoia / a bit assumptive. */
@@ -688,5 +688,5 @@
                                     pPage->idx,
                                     iShw2);
-                        uShw.pPDPae->a[iShw2].u = 0;
+                        ASMAtomicWriteSize(&uShw.pPDPae->a[iShw2].u, 0);
                     }
                 }
@@ -708,5 +708,5 @@
                         LogFlow(("pgmPoolMonitorChainChanging: pdpt iShw=%#x: %RX64 -> freeing it!\n", iShw, uShw.pPDPT->a[iShw].u));
                         pgmPoolFree(pVM, uShw.pPDPT->a[iShw].u & X86_PDPE_PG_MASK, pPage->idx, iShw);
-                        uShw.pPDPT->a[iShw].u = 0;
+                        ASMAtomicWriteSize(&uShw.pPDPT->a[iShw].u, 0);
                     }
                     /* paranoia / a bit assumptive. */
@@ -720,5 +720,5 @@
                             LogFlow(("pgmPoolMonitorChainChanging: pdpt iShw2=%#x: %RX64 -> freeing it!\n", iShw2, uShw.pPDPT->a[iShw2].u));
                             pgmPoolFree(pVM, uShw.pPDPT->a[iShw2].u & X86_PDPE_PG_MASK, pPage->idx, iShw2);
-                            uShw.pPDPT->a[iShw2].u = 0;
+                            ASMAtomicWriteSize(&uShw.pPDPT->a[iShw2].u, 0);
                         }
                     }
@@ -741,5 +741,5 @@
                         LogFlow(("pgmPoolMonitorChainChanging: pml4 iShw=%#x: %RX64 -> freeing it!\n", iShw, uShw.pPML4->a[iShw].u));
                         pgmPoolFree(pVM, uShw.pPML4->a[iShw].u & X86_PML4E_PG_MASK, pPage->idx, iShw);
-                        uShw.pPML4->a[iShw].u = 0;
+                        ASMAtomicWriteSize(&uShw.pPML4->a[iShw].u, 0);
                     }
                     /* paranoia / a bit assumptive. */
@@ -753,5 +753,5 @@
                             LogFlow(("pgmPoolMonitorChainChanging: pml4 iShw2=%#x: %RX64 -> freeing it!\n", iShw2, uShw.pPML4->a[iShw2].u));
                             pgmPoolFree(pVM, uShw.pPML4->a[iShw2].u & X86_PML4E_PG_MASK, pPage->idx, iShw2);
-                            uShw.pPML4->a[iShw2].u = 0;
+                            ASMAtomicWriteSize(&uShw.pPML4->a[iShw2].u, 0);
                         }
                     }
