VirtualBox

Changeset 92204 in vbox for trunk


Ignore:
Timestamp:
Nov 4, 2021 12:51:40 AM (3 years ago)
Author:
vboxsync
Message:

VMM/PDMCritSect: Make it possible for known worker thread to enter critical sections in ring-0. bugref:10093 bugref:6695

Location:
trunk/src/VBox/VMM/VMMAll
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/PDMAllCritSect.cpp

    r91818 r92204  
    8080    RT_NOREF(pVM, pCritSect);
    8181    RTNATIVETHREAD  hNativeSelf = RTThreadNativeSelf();
    82 #else
     82
     83#elif defined(IN_RING0)
    8384    AssertMsgReturn(pCritSect->s.Core.u32Magic == RTCRITSECT_MAGIC, ("%RX32\n", pCritSect->s.Core.u32Magic),
    8485                    NIL_RTNATIVETHREAD);
    85     PVMCPUCC        pVCpu       = VMMGetCpu(pVM);                                       AssertPtr(pVCpu);
    86     RTNATIVETHREAD  hNativeSelf = pVCpu ? pVCpu->hNativeThread : NIL_RTNATIVETHREAD;    Assert(hNativeSelf != NIL_RTNATIVETHREAD);
     86    RTNATIVETHREAD  hNativeSelf = GVMMR0GetRing3ThreadForSelf(pVM);
     87    Assert(hNativeSelf != NIL_RTNATIVETHREAD);
     88
     89#else
     90# error "Invalid context"
    8791#endif
    8892    return hNativeSelf;
  • trunk/src/VBox/VMM/VMMAll/PDMAllCritSectRw.cpp

    r91817 r92204  
    154154    RT_NOREF(pVM, pThis);
    155155    RTNATIVETHREAD  hNativeSelf = RTThreadNativeSelf();
    156 #else
     156
     157#elif defined(IN_RING0)
    157158    AssertMsgReturn(pThis->s.Core.u32Magic == RTCRITSECTRW_MAGIC, ("%RX32\n", pThis->s.Core.u32Magic),
    158159                    NIL_RTNATIVETHREAD);
    159     PVMCPUCC        pVCpu       = VMMGetCpu(pVM); AssertPtr(pVCpu);
    160     RTNATIVETHREAD  hNativeSelf = pVCpu ? pVCpu->hNativeThread : NIL_RTNATIVETHREAD;
     160    RTNATIVETHREAD  hNativeSelf = GVMMR0GetRing3ThreadForSelf(pVM);
    161161    Assert(hNativeSelf != NIL_RTNATIVETHREAD);
     162
     163#else
     164# error "invalid context"
    162165#endif
    163166    return hNativeSelf;
Note: See TracChangeset for help on using the changeset viewer.

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