Changeset 26700 in vbox for trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
- Timestamp:
- Feb 23, 2010 1:14:16 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r26685 r26700 1615 1615 # endif 1616 1616 SHWPDE PdeDst = *pPdeDst; 1617 1618 /* In the guest SMP case we could have blocked while another VCPU reused this page table. */ 1617 1619 if (!PdeDst.n.u1Present) 1618 1620 { … … 1920 1922 PdeDst = pPDDst->a[iPDDst]; 1921 1923 # endif 1922 AssertMsg(PdeDst.n.u1Present, ("%#llx\n", (uint64_t)PdeDst.u)); 1924 /* In the guest SMP case we could have blocked while another VCPU reused this page table. */ 1925 if (!PdeDst.n.u1Present) 1926 { 1927 AssertMsg(pVM->cCpus > 1, ("Unexpected missing PDE %RX64\n", (uint64_t)PdeDst.u)); 1928 Log(("CPU%d: SyncPage: Pde at %RGv changed behind our back!\n", GCPtrPage)); 1929 return VINF_SUCCESS; /* force the instruction to be executed again. */ 1930 } 1931 1923 1932 PPGMPOOLPAGE pShwPage = pgmPoolGetPage(pPool, PdeDst.u & SHW_PDE_PG_MASK); 1924 1933 PSHWPT pPTDst = (PSHWPT)PGMPOOL_PAGE_2_PTR(pVM, pShwPage); 1934 1935 /* Can happen in the guest SMP case; other VCPU activated this PDE while we were blocking to handle the page fault. */ 1936 if (PdeDst.n.u1Size) 1937 return VINF_SUCCESS; 1925 1938 1926 1939 Assert(cPages == 1 || !(uErr & X86_TRAP_PF_P));
Note:
See TracChangeset
for help on using the changeset viewer.