Changeset 20068 in vbox
- Timestamp:
- May 27, 2009 11:32:49 AM (16 years ago)
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAll.cpp
r20008 r20068 790 790 VMMDECL(int) PGMShwGetPage(PVMCPU pVCpu, RTGCPTR GCPtr, uint64_t *pfFlags, PRTHCPHYS pHCPhys) 791 791 { 792 return PGM_SHW_PFN(GetPage, pVCpu)(pVCpu, GCPtr, pfFlags, pHCPhys); 792 pgmLock(pVCpu->CTX_SUFF(pVM)); 793 int rc = PGM_SHW_PFN(GetPage, pVCpu)(pVCpu, GCPtr, pfFlags, pHCPhys); 794 pgmUnlock(pVCpu->CTX_SUFF(pVM)); 795 return rc; 793 796 } 794 797 -
trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r20065 r20068 800 800 pgmLock(pVM); 801 801 rc = PGM_BTH_NAME(SyncPage)(pVCpu, PdeSrc, pvFault, 1, uErr); 802 # ifndef VBOX_STRICT 803 /* Keep it locked in VBOX_STRICT mode so the next checks won't trigger without reason with guest SMP. */ 802 804 pgmUnlock(pVM); 805 # endif 803 806 if (RT_SUCCESS(rc)) 804 807 { … … 815 818 uint64_t fPageShw; 816 819 rc = PGMShwGetPage(pVCpu, pvFault, &fPageShw, NULL); 817 AssertMsg((pVM->cCPUs > 1 && rc == VERR_PAGE_NOT_PRESENT) || (RT_SUCCESS(rc) && (fPageShw & X86_PTE_RW)), ("rc=%Rrc fPageShw=%RX64\n", rc, fPageShw)); 820 AssertMsg((RT_SUCCESS(rc) && (fPageShw & X86_PTE_RW)), ("rc=%Rrc fPageShw=%RX64\n", rc, fPageShw)); 821 pgmUnlock(pVM); 818 822 # endif /* VBOX_STRICT */ 819 823 STAM_PROFILE_STOP(&pVCpu->pgm.s.StatRZTrap0eTimeOutOfSync, c); … … 821 825 return VINF_SUCCESS; 822 826 } 827 # ifdef VBOX_STRICT 828 pgmUnlock(pVM); 829 # endif 823 830 824 831 /* Check to see if we need to emulate the instruction as X86_CR0_WP has been cleared. */ -
trunk/src/VBox/VMM/VMMAll/PGMAllShw.h
r19903 r20068 146 146 PVM pVM = pVCpu->CTX_SUFF(pVM); 147 147 148 Assert(PGMIsLockOwner(pVM)); 149 148 150 /* 149 151 * Get the PDE.
Note:
See TracChangeset
for help on using the changeset viewer.