VirtualBox

Changeset 31177 in vbox


Ignore:
Timestamp:
Jul 28, 2010 5:17:31 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
64164
Message:

PGMR0DynMap.cpp: Applied PGMR0DYNMAP_2_VMCPU to the wrong type. Fixes crashes caused by the pgmR0DynMapHCPageCommon signature change.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/PGMR0DynMap.cpp

    r31175 r31177  
    11851185 * @param   HCPhys      The address of the page to be mapped.
    11861186 * @param   iPage       The page index pgmR0DynMapPage hashed HCPhys to.
    1187  */
    1188 static uint32_t pgmR0DynMapPageSlow(PPGMR0DYNMAP pThis, RTHCPHYS HCPhys, uint32_t iPage)
    1189 {
    1190 #ifdef VBOX_WITH_STATISTICS
    1191     PVMCPU pVCpu = PGMR0DYNMAP_2_VMCPU(pThis);
    1192 #endif
     1187 * @param   pVCpu       The current CPU, for statistics.
     1188 */
     1189static uint32_t pgmR0DynMapPageSlow(PPGMR0DYNMAP pThis, RTHCPHYS HCPhys, uint32_t iPage, PVMCPU pVCpu)
     1190{
    11931191    STAM_COUNTER_INC(&pVCpu->pgm.s.CTX_SUFF(pStats)->StatR0DynMapPageSlow);
    11941192
     
    12851283 * @param   HCPhys      The address of the page to be mapped.
    12861284 * @param   iRealCpu    The real cpu set index. (optimization)
     1285 * @param   pVCpu       The current CPU (for statistics).
    12871286 * @param   ppvPage     Where to the page address.
    12881287 */
    1289 DECLINLINE(uint32_t) pgmR0DynMapPage(PPGMR0DYNMAP pThis, RTHCPHYS HCPhys, int32_t iRealCpu, void **ppvPage)
    1290 {
    1291 #ifdef VBOX_WITH_STATISTICS
    1292     PVMCPU              pVCpu   = PGMR0DYNMAP_2_VMCPU(pThis);
    1293 #endif
     1288DECLINLINE(uint32_t) pgmR0DynMapPage(PPGMR0DYNMAP pThis, RTHCPHYS HCPhys, int32_t iRealCpu, PVMCPU pVCpu, void **ppvPage)
     1289{
    12941290    RTSPINLOCKTMP       Tmp     = RTSPINLOCKTMP_INITIALIZER;
    12951291    RTSpinlockAcquire(pThis->hSpinlock, &Tmp);
     
    13281324            else
    13291325            {
    1330                 iPage = pgmR0DynMapPageSlow(pThis, HCPhys, iPage);
     1326                iPage = pgmR0DynMapPageSlow(pThis, HCPhys, iPage, pVCpu);
    13311327                if (RT_UNLIKELY(iPage == UINT32_MAX))
    13321328                {
     
    18421838{
    18431839    LogFlow(("pgmR0DynMapHCPageCommon: pSet=%p HCPhys=%RHp ppv=%p\n", pSet, HCPhys, ppv));
    1844 #ifdef VBOX_WITH_STATISTICS
     1840    AssertMsg(pSet->iCpu == RTMpCpuIdToSetIndex(RTMpCpuId()), ("%d %d(%d) efl=%#x\n", pSet->iCpu, RTMpCpuIdToSetIndex(RTMpCpuId()), RTMpCpuId(), ASMGetFlags()));
    18451841    PVMCPU pVCpu = PGMR0DYNMAP_2_VMCPU(pSet);
    1846 #endif
    1847     AssertMsg(pSet->iCpu == RTMpCpuIdToSetIndex(RTMpCpuId()), ("%d %d(%d) efl=%#x\n", pSet->iCpu, RTMpCpuIdToSetIndex(RTMpCpuId()), RTMpCpuId(), ASMGetFlags()));
    18481842
    18491843    /*
     
    18511845     */
    18521846    void *pvPage;
    1853     uint32_t const  iPage = pgmR0DynMapPage(g_pPGMR0DynMap, HCPhys, pSet->iCpu, &pvPage);
     1847    uint32_t const  iPage = pgmR0DynMapPage(g_pPGMR0DynMap, HCPhys, pSet->iCpu, pVCpu, &pvPage);
    18541848    if (RT_UNLIKELY(iPage == UINT32_MAX))
    18551849    {
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette