VirtualBox

Ignore:
Timestamp:
Aug 15, 2014 10:25:31 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
95550
Message:

intnetR0TrunkIfPortDisconnect: Must always release the busy reference to the interface side (netflt) and must not trust pThis->pIfPort to be working as it's cleared before doing the busy waiting in intnetR0TrunkIfDestroy. So, pfnDisconnect has been extended with a pIfPort pointer as well as a function pointer to a busy-release function for pIfPort.

Location:
trunk/src/VBox/HostDrivers/VBoxNetFlt
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFlt.c

    r52134 r52394  
    749749
    750750/**
    751  * @copydoc INTNETTRUNKIFPORT::pfnRetain
    752  */
    753 #ifdef VBOX_WITH_INTNET_DISCONNECT
    754 static DECLCALLBACK(void) vboxNetFltPortRelease(PINTNETTRUNKIFPORT pIfPort, bool fBusy)
    755 {
    756     PVBOXNETFLTINS pThis = IFPORT_2_VBOXNETFLTINS(pIfPort);
    757     vboxNetFltRelease(pThis, fBusy);
    758 }
    759 #else /* !VBOX_WITH_INTNET_DISCONNECT */
     751 * @copydoc INTNETTRUNKIFPORT::pfnRelease
     752 */
    760753static DECLCALLBACK(void) vboxNetFltPortRelease(PINTNETTRUNKIFPORT pIfPort)
    761754{
     
    763756    vboxNetFltRelease(pThis, false /* fBusy */);
    764757}
    765 #endif /* !VBOX_WITH_INTNET_DISCONNECT */
     758
     759
     760/**
     761 * @callback_method_impl{FNINTNETTRUNKIFPORTRELEASEBUSY}
     762 */
     763DECLHIDDEN(DECLCALLBACK(void)) vboxNetFltPortReleaseBusy(PINTNETTRUNKIFPORT pIfPort)
     764{
     765    PVBOXNETFLTINS pThis = IFPORT_2_VBOXNETFLTINS(pIfPort);
     766    vboxNetFltRelease(pThis, true /*fBusy*/);
     767}
    766768
    767769
  • trunk/src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFltInternal.h

    r46904 r52394  
    330330DECLHIDDEN(PVBOXNETFLTINS) vboxNetFltFindInstance(PVBOXNETFLTGLOBALS pGlobals, const char *pszName);
    331331
     332DECLHIDDEN(DECLCALLBACK(void)) vboxNetFltPortReleaseBusy(PINTNETTRUNKIFPORT pIfPort);
    332333DECLHIDDEN(void) vboxNetFltRetain(PVBOXNETFLTINS pThis, bool fBusy);
    333334DECLHIDDEN(bool) vboxNetFltTryRetainBusyActive(PVBOXNETFLTINS pThis);
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