Changeset 92642 in vbox for trunk/src/VBox
- Timestamp:
- Nov 30, 2021 9:19:01 AM (3 years ago)
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAll.cpp
r92639 r92642 1733 1733 VMCPU_ASSERT_EMT(pVCpu); 1734 1734 Assert(pWalk); 1735 RT_BZERO(pWalk, sizeof(*pWalk));1736 1735 uintptr_t idx = pVCpu->pgm.s.idxGuestModeData; 1737 1736 AssertReturn(idx < RT_ELEMENTS(g_aPgmGuestModeData), VERR_PGM_MODE_IPE); -
trunk/src/VBox/VMM/VMMAll/PGMAllGst.h
r92626 r92642 380 380 || PGM_GST_TYPE == PGM_TYPE_AMD64 381 381 382 PGMPTWALK Walk;383 382 GSTPTWALK GstWalk; 384 RT_ZERO(Walk); 385 RT_ZERO(GstWalk); 386 int rc = PGM_GST_NAME(Walk)(pVCpu, GCPtr, &Walk, &GstWalk); 383 int rc = PGM_GST_NAME(Walk)(pVCpu, GCPtr, pWalk, &GstWalk); 387 384 if (RT_FAILURE(rc)) 388 385 return rc; 389 386 390 uint64_t fFlags; 391 if (!Walk.fBigPage) 387 Assert(pWalk->fSucceeded); 388 Assert(pWalk->GCPtr == GCPtr); 389 390 PGMPTATTRS fFlags; 391 if (!pWalk->fBigPage) 392 392 fFlags = (GstWalk.Pte.u & ~(GST_PTE_PG_MASK | X86_PTE_RW | X86_PTE_US)) /* NX not needed */ 393 | ( Walk.fEffective & (PGM_PTATTRS_W_MASK | PGM_PTATTRS_US_MASK))393 | (pWalk->fEffective & (PGM_PTATTRS_W_MASK | PGM_PTATTRS_US_MASK)) 394 394 # if PGM_WITH_NX(PGM_GST_TYPE, PGM_GST_TYPE) 395 | ( Walk.fEffective & PGM_PTATTRS_NX_MASK)395 | (pWalk->fEffective & PGM_PTATTRS_NX_MASK) 396 396 # endif 397 397 ; … … 399 399 { 400 400 fFlags = (GstWalk.Pde.u & ~(GST_PTE_PG_MASK | X86_PDE4M_RW | X86_PDE4M_US | X86_PDE4M_PS)) /* NX not needed */ 401 | ( Walk.fEffective & (PGM_PTATTRS_W_MASK | PGM_PTATTRS_US_MASK | PGM_PTATTRS_PAT_MASK))401 | (pWalk->fEffective & (PGM_PTATTRS_W_MASK | PGM_PTATTRS_US_MASK | PGM_PTATTRS_PAT_MASK)) 402 402 # if PGM_WITH_NX(PGM_GST_TYPE, PGM_GST_TYPE) 403 | ( Walk.fEffective & PGM_PTATTRS_NX_MASK)403 | (pWalk->fEffective & PGM_PTATTRS_NX_MASK) 404 404 # endif 405 405 ; 406 406 } 407 407 408 pWalk->fSucceeded = true; 409 pWalk->GCPtr = GCPtr; 410 pWalk->GCPhys = Walk.GCPhys & ~(RTGCPHYS)PAGE_OFFSET_MASK; 408 pWalk->GCPhys &= ~(RTGCPHYS)PAGE_OFFSET_MASK; 411 409 pWalk->fEffective = fFlags; 412 410 return VINF_SUCCESS;
Note:
See TracChangeset
for help on using the changeset viewer.