Changeset 40806 in vbox for trunk/src/VBox/HostDrivers/VBoxNetFlt
- Timestamp:
- Apr 6, 2012 9:05:19 PM (13 years ago)
- svn:sync-xref-src-repo-rev:
- 77321
- Location:
- trunk/src/VBox/HostDrivers/VBoxNetFlt
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostDrivers/VBoxNetFlt/VBoxNetFlt.c
r33540 r40806 375 375 static bool vboxNetFltMaybeRediscovered(PVBOXNETFLTINS pThis) 376 376 { 377 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;378 377 uint64_t Now; 379 378 bool fRediscovered; … … 396 395 */ 397 396 Now = RTTimeNanoTS(); 398 RTSpinlockAcquire NoInts(pThis->hSpinlock, &Tmp);397 RTSpinlockAcquire(pThis->hSpinlock); 399 398 400 399 fRediscovered = !ASMAtomicUoReadBool(&pThis->fDisconnectedFromHost); … … 405 404 ASMAtomicWriteBool(&pThis->fRediscoveryPending, true); 406 405 407 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);406 RTSpinlockReleaseNoInts(pThis->hSpinlock); 408 407 409 408 /* … … 499 498 { 500 499 PVBOXNETFLTINS pThis = IFPORT_2_VBOXNETFLTINS(pIfPort); 501 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;502 500 INTNETTRUNKIFSTATE enmOldTrunkState; 503 501 … … 515 513 * Take the lock and change the state. 516 514 */ 517 RTSpinlockAcquire NoInts(pThis->hSpinlock, &Tmp);515 RTSpinlockAcquire(pThis->hSpinlock); 518 516 enmOldTrunkState = pThis->enmTrunkState; 519 517 if (enmOldTrunkState != enmState) 520 518 ASMAtomicWriteU32((uint32_t volatile *)&pThis->enmTrunkState, enmState); 521 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);519 RTSpinlockReleaseNoInts(pThis->hSpinlock); 522 520 523 521 /* … … 602 600 { 603 601 PVBOXNETFLTINS pThis = IFPORT_2_VBOXNETFLTINS(pIfPort); 604 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;605 602 606 603 /* … … 623 620 * Disconnect and release it. 624 621 */ 625 RTSpinlockAcquire NoInts(pThis->hSpinlock, &Tmp);622 RTSpinlockAcquire(pThis->hSpinlock); 626 623 vboxNetFltSetState(pThis, kVBoxNetFltInsState_Disconnecting); 627 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);624 RTSpinlockReleaseNoInts(pThis->hSpinlock); 628 625 629 626 vboxNetFltOsDisconnectIt(pThis); … … 631 628 632 629 #ifdef VBOXNETFLT_STATIC_CONFIG 633 RTSpinlockAcquire NoInts(pThis->hSpinlock, &Tmp);630 RTSpinlockAcquire(pThis->hSpinlock); 634 631 vboxNetFltSetState(pThis, kVBoxNetFltInsState_Unconnected); 635 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);632 RTSpinlockReleaseNoInts(pThis->hSpinlock); 636 633 #endif 637 634 … … 814 811 DECLHIDDEN(bool) vboxNetFltTryRetainBusyActive(PVBOXNETFLTINS pThis) 815 812 { 816 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;817 813 uint32_t cRefs; 818 814 bool fRc; … … 834 830 * Do the retaining and checking behind the spinlock. 835 831 */ 836 RTSpinlockAcquire NoInts(pThis->hSpinlock, &Tmp);832 RTSpinlockAcquire(pThis->hSpinlock); 837 833 fRc = pThis->enmTrunkState == INTNETTRUNKIFSTATE_ACTIVE; 838 834 if (fRc) … … 844 840 AssertMsg(cRefs >= 1 && cRefs < UINT32_MAX / 2, ("%d\n", cRefs)); NOREF(cRefs); 845 841 } 846 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);842 RTSpinlockReleaseNoInts(pThis->hSpinlock); 847 843 848 844 return fRc; … … 861 857 DECLHIDDEN(bool) vboxNetFltTryRetainBusyNotDisconnected(PVBOXNETFLTINS pThis) 862 858 { 863 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;864 859 uint32_t cRefs; 865 860 bool fRc; … … 881 876 * Do the retaining and checking behind the spinlock. 882 877 */ 883 RTSpinlockAcquire NoInts(pThis->hSpinlock, &Tmp);878 RTSpinlockAcquire(pThis->hSpinlock); 884 879 fRc = pThis->enmTrunkState == INTNETTRUNKIFSTATE_ACTIVE 885 880 || pThis->enmTrunkState == INTNETTRUNKIFSTATE_INACTIVE; … … 892 887 AssertMsg(cRefs >= 1 && cRefs < UINT32_MAX / 2, ("%d\n", cRefs)); NOREF(cRefs); 893 888 } 894 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);889 RTSpinlockReleaseNoInts(pThis->hSpinlock); 895 890 896 891 return fRc; … … 1017 1012 memcpy(pNew->szName, pszName, cchName + 1); 1018 1013 1019 rc = RTSpinlockCreate(&pNew->hSpinlock );1014 rc = RTSpinlockCreate(&pNew->hSpinlock, RTSPINLOCK_FLAGS_INTERRUPT_SAFE, "VBoxNetFltNewInstance"); 1020 1015 if (RT_SUCCESS(rc)) 1021 1016 { -
trunk/src/VBox/HostDrivers/VBoxNetFlt/darwin/VBoxNetFlt-darwin.cpp
r38485 r40806 227 227 DECLINLINE(ifnet_t) vboxNetFltDarwinRetainIfNet(PVBOXNETFLTINS pThis) 228 228 { 229 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;230 229 ifnet_t pIfNet = NULL; 231 230 … … 233 232 * Be careful here to avoid problems racing the detached callback. 234 233 */ 235 RTSpinlockAcquire NoInts(pThis->hSpinlock, &Tmp);234 RTSpinlockAcquire(pThis->hSpinlock); 236 235 if (!ASMAtomicUoReadBool(&pThis->fDisconnectedFromHost)) 237 236 { … … 240 239 ifnet_reference(pIfNet); 241 240 } 242 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);241 RTSpinlockReleaseNoInts(pThis->hSpinlock); 243 242 244 243 return pIfNet; … … 639 638 { 640 639 PVBOXNETFLTINS pThis = (PVBOXNETFLTINS)pvThis; 641 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;642 640 uint64_t NanoTS = RTTimeSystemNanoTS(); 643 641 LogFlow(("vboxNetFltDarwinIffDetached: pThis=%p NanoTS=%RU64 (%d)\n", … … 658 656 * behind it in order to avoid problematic races with the detached callback. 659 657 */ 660 RTSpinlockAcquire NoInts(pThis->hSpinlock, &Tmp);658 RTSpinlockAcquire(pThis->hSpinlock); 661 659 662 660 pIfNet = ASMAtomicUoReadPtrT(&pThis->u.s.pIfNet, ifnet_t); … … 671 669 ASMAtomicWriteBool(&pThis->fDisconnectedFromHost, true); 672 670 673 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);671 RTSpinlockReleaseNoInts(pThis->hSpinlock); 674 672 675 673 if (pIfNet) … … 916 914 } 917 915 918 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; 919 RTSpinlockAcquireNoInts(pThis->hSpinlock, &Tmp); 916 RTSpinlockAcquire(pThis->hSpinlock); 920 917 ASMAtomicUoWritePtr(&pThis->u.s.pIfNet, pIfNet); 921 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);918 RTSpinlockReleaseNoInts(pThis->hSpinlock); 922 919 923 920 /* … … 943 940 Assert(err || pIfFilter); 944 941 945 RTSpinlockAcquire NoInts(pThis->hSpinlock, &Tmp);942 RTSpinlockAcquire(pThis->hSpinlock); 946 943 pIfNet = ASMAtomicUoReadPtrT(&pThis->u.s.pIfNet, ifnet_t); 947 944 if (pIfNet && !err) … … 951 948 pIfNet = NULL; /* don't dereference it */ 952 949 } 953 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);950 RTSpinlockReleaseNoInts(pThis->hSpinlock); 954 951 955 952 /* Report capabilities. */ … … 1163 1160 void vboxNetFltOsDeleteInstance(PVBOXNETFLTINS pThis) 1164 1161 { 1165 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;1166 1162 interface_filter_t pIfFilter; 1167 1163 … … 1169 1165 * Carefully obtain the interface filter reference and detach it. 1170 1166 */ 1171 RTSpinlockAcquire NoInts(pThis->hSpinlock, &Tmp);1167 RTSpinlockAcquire(pThis->hSpinlock); 1172 1168 pIfFilter = ASMAtomicUoReadPtrT(&pThis->u.s.pIfFilter, interface_filter_t); 1173 1169 if (pIfFilter) 1174 1170 ASMAtomicUoWriteNullPtr(&pThis->u.s.pIfFilter); 1175 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);1171 RTSpinlockReleaseNoInts(pThis->hSpinlock); 1176 1172 1177 1173 if (pIfFilter) -
trunk/src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c
r37423 r40806 581 581 struct ifnet *ifp; 582 582 node_p node; 583 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;584 583 585 584 VBOXCURVNET_SET_FROM_UCRED(); … … 593 592 return VERR_INTERNAL_ERROR; 594 593 595 RTSpinlockAcquire NoInts(pThis->hSpinlock, &Tmp);594 RTSpinlockAcquire(pThis->hSpinlock); 596 595 597 596 ASMAtomicUoWritePtr(&pThis->u.s.ifp, ifp); … … 610 609 TASK_INIT(&pThis->u.s.tskout, 0, vboxNetFltFreeBSDoutput, pThis); 611 610 612 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);611 RTSpinlockReleaseNoInts(pThis->hSpinlock); 613 612 614 613 NG_NODE_SET_PRIVATE(node, pThis); -
trunk/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
r40733 r40806 382 382 { 383 383 PVBOXNETDEVICEOPSOVERRIDE pOverride; 384 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;385 384 386 385 /* Cancel override if ethtool_ops is missing (host-only case, #5712) */ … … 402 401 pOverride->pVBoxNetFlt = pThis; 403 402 404 RTSpinlockAcquire NoInts(pThis->hSpinlock, &Tmp); /* (this isn't necessary, but so what) */403 RTSpinlockAcquire(pThis->hSpinlock); /* (this isn't necessary, but so what) */ 405 404 ASMAtomicWritePtr((void * volatile *)&pDev->OVR_OPS, pOverride); 406 405 # if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) 407 406 ASMAtomicXchgPtr((void * volatile *)&pDev->hard_start_xmit, vboxNetFltLinuxStartXmitFilter); 408 407 # endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) */ 409 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);408 RTSpinlockReleaseNoInts(pThis->hSpinlock); 410 409 } 411 410 … … 420 419 { 421 420 PVBOXNETDEVICEOPSOVERRIDE pOverride; 422 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; 423 424 RTSpinlockAcquireNoInts(pThis->hSpinlock, &Tmp); 421 422 RTSpinlockAcquire(pThis->hSpinlock); 425 423 if (!pDev) 426 424 pDev = ASMAtomicUoReadPtrT(&pThis->u.s.pDev, struct net_device *); … … 444 442 else 445 443 pOverride = NULL; 446 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);444 RTSpinlockReleaseNoInts(pThis->hSpinlock); 447 445 448 446 if (pOverride) … … 465 463 { 466 464 #if 0 467 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;468 465 struct net_device *pDev = NULL; 469 466 … … 472 469 * Be careful here to avoid problems racing the detached callback. 473 470 */ 474 RTSpinlockAcquire(pThis->hSpinlock , &Tmp);471 RTSpinlockAcquire(pThis->hSpinlock); 475 472 if (!ASMAtomicUoReadBool(&pThis->fDisconnectedFromHost)) 476 473 { … … 489 486 } 490 487 } 491 RTSpinlockRelease(pThis->hSpinlock , &Tmp);488 RTSpinlockRelease(pThis->hSpinlock); 492 489 493 490 Log(("vboxNetFltLinuxRetainNetDev - done\n")); … … 1382 1379 PINTNETTRUNKSWPORT pSwitchPort; 1383 1380 unsigned int fFeatures; 1384 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; 1385 1386 RTSpinlockAcquireNoInts(pThis->hSpinlock, &Tmp); 1381 1382 RTSpinlockAcquire(pThis->hSpinlock); 1387 1383 1388 1384 pSwitchPort = pThis->pSwitchPort; /* this doesn't need to be here, but it doesn't harm. */ … … 1393 1389 fFeatures = 0; 1394 1390 1395 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);1391 RTSpinlockReleaseNoInts(pThis->hSpinlock); 1396 1392 1397 1393 if (pThis->pSwitchPort) … … 1498 1494 static int vboxNetFltLinuxAttachToInterface(PVBOXNETFLTINS pThis, struct net_device *pDev) 1499 1495 { 1500 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;1501 1496 LogFlow(("vboxNetFltLinuxAttachToInterface: pThis=%p (%s)\n", pThis, pThis->szName)); 1502 1497 … … 1506 1501 dev_hold(pDev); 1507 1502 1508 RTSpinlockAcquire NoInts(pThis->hSpinlock, &Tmp);1503 RTSpinlockAcquire(pThis->hSpinlock); 1509 1504 ASMAtomicUoWritePtr(&pThis->u.s.pDev, pDev); 1510 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);1505 RTSpinlockReleaseNoInts(pThis->hSpinlock); 1511 1506 1512 1507 Log(("vboxNetFltLinuxAttachToInterface: Device %p(%s) retained. ref=%d\n", … … 1546 1541 * the device notification handle. 1547 1542 */ 1548 RTSpinlockAcquire NoInts(pThis->hSpinlock, &Tmp);1543 RTSpinlockAcquire(pThis->hSpinlock); 1549 1544 pDev = ASMAtomicUoReadPtrT(&pThis->u.s.pDev, struct net_device *); 1550 1545 if (pDev) … … 1554 1549 pDev = NULL; /* don't dereference it */ 1555 1550 } 1556 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);1551 RTSpinlockReleaseNoInts(pThis->hSpinlock); 1557 1552 Log(("vboxNetFltLinuxAttachToInterface: this=%p: Packet handler installed.\n", pThis)); 1558 1553 … … 1578 1573 vboxNetFltLinuxUnhookDev(pThis, pDev); 1579 1574 #endif 1580 RTSpinlockAcquire NoInts(pThis->hSpinlock, &Tmp);1575 RTSpinlockAcquire(pThis->hSpinlock); 1581 1576 ASMAtomicUoWriteNullPtr(&pThis->u.s.pDev); 1582 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);1577 RTSpinlockReleaseNoInts(pThis->hSpinlock); 1583 1578 dev_put(pDev); 1584 1579 Log(("vboxNetFltLinuxAttachToInterface: Device %p(%s) released. ref=%d\n", … … 1599 1594 static int vboxNetFltLinuxUnregisterDevice(PVBOXNETFLTINS pThis, struct net_device *pDev) 1600 1595 { 1601 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;1602 1603 1596 Assert(!pThis->fDisconnectedFromHost); 1604 1597 … … 1607 1600 #endif 1608 1601 1609 RTSpinlockAcquire NoInts(pThis->hSpinlock, &Tmp);1602 RTSpinlockAcquire(pThis->hSpinlock); 1610 1603 ASMAtomicWriteBool(&pThis->u.s.fRegistered, false); 1611 1604 ASMAtomicWriteBool(&pThis->fDisconnectedFromHost, true); 1612 1605 ASMAtomicUoWriteNullPtr(&pThis->u.s.pDev); 1613 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);1606 RTSpinlockReleaseNoInts(pThis->hSpinlock); 1614 1607 1615 1608 dev_remove_pack(&pThis->u.s.PacketType); … … 1902 1895 struct net_device *pDev; 1903 1896 bool fRegistered; 1904 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;1905 1897 1906 1898 #ifdef VBOXNETFLT_WITH_HOST2WIRE_FILTER … … 1913 1905 * ways. */ 1914 1906 1915 RTSpinlockAcquire NoInts(pThis->hSpinlock, &Tmp);1907 RTSpinlockAcquire(pThis->hSpinlock); 1916 1908 pDev = ASMAtomicUoReadPtrT(&pThis->u.s.pDev, struct net_device *); 1917 1909 fRegistered = ASMAtomicUoReadBool(&pThis->u.s.fRegistered); 1918 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);1910 RTSpinlockReleaseNoInts(pThis->hSpinlock); 1919 1911 1920 1912 if (fRegistered) -
trunk/src/VBox/HostDrivers/VBoxNetFlt/solaris/VBoxNetFlt-solaris.c
r40231 r40806 1081 1081 * the promiscuous OFF acknowledgement case). 1082 1082 */ 1083 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; 1084 RTSpinlockAcquireNoInts(pThis->hSpinlock, &Tmp); 1083 RTSpinlockAcquire(pThis->hSpinlock); 1085 1084 const bool fActive = pThis->enmTrunkState == INTNETTRUNKIFSTATE_ACTIVE; 1086 1085 vboxNetFltRetain(pThis, true /* fBusy */); 1087 RTSpinlockReleaseNoInts(pThis->hSpinlock , &Tmp);1086 RTSpinlockReleaseNoInts(pThis->hSpinlock); 1088 1087 1089 1088 vboxnetflt_promisc_stream_t *pPromiscStream = (vboxnetflt_promisc_stream_t *)pStream; -
trunk/src/VBox/HostDrivers/VBoxNetFlt/win/drv/VBoxNetFltM-win.cpp
r36184 r40806 132 132 DECLHIDDEN(NDIS_STATUS) vboxNetFltWinMpDoDeinitialization(PVBOXNETFLTINS pNetFlt) 133 133 { 134 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;135 134 uint64_t NanoTS = RTTimeSystemNanoTS(); 136 135 137 136 Assert(vboxNetFltWinGetOpState(&pNetFlt->u.s.WinIf.MpState) == kVBoxNetDevOpState_Initialized); 138 137 139 RTSpinlockAcquire NoInts(pNetFlt->hSpinlock, &Tmp);138 RTSpinlockAcquire(pNetFlt->hSpinlock); 140 139 ASMAtomicUoWriteBool(&pNetFlt->fDisconnectedFromHost, true); 141 140 ASMAtomicUoWriteBool(&pNetFlt->fRediscoveryPending, false); … … 144 143 vboxNetFltWinSetOpState(&pNetFlt->u.s.WinIf.MpState, kVBoxNetDevOpState_Deinitializing); 145 144 146 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock , &Tmp);145 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock); 147 146 148 147 vboxNetFltWinWaitDereference(&pNetFlt->u.s.WinIf.MpState); … … 505 504 static UINT vboxNetFltWinMpRequestStatePrep(PVBOXNETFLTINS pNetFlt, NDIS_STATUS *pStatus) 506 505 { 507 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;508 509 506 Assert(!pNetFlt->u.s.WinIf.StateFlags.fRequestInfo); 510 507 … … 516 513 } 517 514 518 RTSpinlockAcquire NoInts(pNetFlt->hSpinlock, &Tmp);515 RTSpinlockAcquire(pNetFlt->hSpinlock); 519 516 Assert(!pNetFlt->u.s.WinIf.StateFlags.fRequestInfo); 520 517 if (vboxNetFltWinGetOpState(&pNetFlt->u.s.WinIf.PtState) > kVBoxNetDevOpState_Initialized /* protocol unbind in progress */ 521 518 || vboxNetFltWinGetPowerState(&pNetFlt->u.s.WinIf.MpState) > NdisDeviceStateD0) 522 519 { 523 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock , &Tmp);520 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock); 524 521 *pStatus = NDIS_STATUS_FAILURE; 525 522 return 0; … … 530 527 { 531 528 pNetFlt->u.s.WinIf.StateFlags.fRequestInfo = VBOXNDISREQUEST_INPROGRESS | VBOXNDISREQUEST_QUEUED; 532 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock , &Tmp);529 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock); 533 530 *pStatus = NDIS_STATUS_PENDING; 534 531 return VBOXNDISREQUEST_INPROGRESS | VBOXNDISREQUEST_QUEUED; … … 537 534 if (pNetFlt->u.s.WinIf.StateFlags.fStandBy) 538 535 { 539 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock , &Tmp);536 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock); 540 537 *pStatus = NDIS_STATUS_FAILURE; 541 538 return 0; … … 544 541 pNetFlt->u.s.WinIf.StateFlags.fRequestInfo = VBOXNDISREQUEST_INPROGRESS; 545 542 546 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock , &Tmp);543 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock); 547 544 548 545 *pStatus = NDIS_STATUS_SUCCESS; … … 776 773 { 777 774 PVBOXNETFLTINS pNetFlt = (PVBOXNETFLTINS)MiniportAdapterContext; 778 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;779 775 NDIS_STATUS Status = NDIS_STATUS_FAILURE; 780 776 -
trunk/src/VBox/HostDrivers/VBoxNetFlt/win/drv/VBoxNetFltM-win.h
r36207 r40806 26 26 DECLHIDDEN(NDIS_STATUS) vboxNetFltWinMpDoInitialization(PVBOXNETFLTINS pThis, NDIS_HANDLE hMiniportAdapter, NDIS_HANDLE hWrapperConfigurationContext); 27 27 DECLHIDDEN(NDIS_STATUS) vboxNetFltWinMpDoDeinitialization(PVBOXNETFLTINS pThis); 28 28 29 #else 30 29 31 DECLHIDDEN(NDIS_STATUS) vboxNetFltWinMpInitializeDevideInstance(PVBOXNETFLTINS pThis); 30 32 DECLHIDDEN(bool) vboxNetFltWinMpDeInitializeDeviceInstance(PVBOXNETFLTINS pThis, PNDIS_STATUS pStatus); 33 31 34 DECLINLINE(VOID) vboxNetFltWinMpRequestStateComplete(PVBOXNETFLTINS pNetFlt) 32 35 { 33 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; 34 RTSpinlockAcquireNoInts(pNetFlt->hSpinlock, &Tmp); 36 RTSpinlockAcquire(pNetFlt->hSpinlock); 35 37 pNetFlt->u.s.WinIf.StateFlags.fRequestInfo = 0; 36 RTSpinlockRelease NoInts(pNetFlt->hSpinlock, &Tmp);38 RTSpinlockRelease(pNetFlt->hSpinlock); 37 39 } 40 38 41 DECLHIDDEN(NDIS_STATUS) vboxNetFltWinMpRequestPost(PVBOXNETFLTINS pNetFlt); 39 42 #endif -
trunk/src/VBox/HostDrivers/VBoxNetFlt/win/drv/VBoxNetFltP-win.cpp
r36184 r40806 162 162 static void vboxNetFltWinPtRequestsWaitComplete(PVBOXNETFLTINS pNetFlt) 163 163 { 164 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;165 166 164 /* wait for request to complete */ 167 165 while (vboxNetFltWinAtomicUoReadWinState(pNetFlt->u.s.WinIf.StateFlags).fRequestInfo == VBOXNDISREQUEST_INPROGRESS) … … 173 171 * If the below miniport is going to low power state, complete the queued request 174 172 */ 175 RTSpinlockAcquire NoInts(pNetFlt->hSpinlock, &Tmp);173 RTSpinlockAcquire(pNetFlt->hSpinlock); 176 174 if (pNetFlt->u.s.WinIf.StateFlags.fRequestInfo & VBOXNDISREQUEST_QUEUED) 177 175 { 178 176 /* mark the request as InProgress before posting it to RequestComplete */ 179 177 pNetFlt->u.s.WinIf.StateFlags.fRequestInfo = VBOXNDISREQUEST_INPROGRESS; 180 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock , &Tmp);178 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock); 181 179 vboxNetFltWinPtRequestComplete(pNetFlt, &pNetFlt->u.s.WinIf.PassDownRequest, NDIS_STATUS_FAILURE); 182 180 } 183 181 else 184 182 { 185 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock , &Tmp);183 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock); 186 184 } 187 185 } … … 190 188 { 191 189 NDIS_STATUS Status; 192 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;193 190 uint64_t NanoTS = RTTimeSystemNanoTS(); 194 191 int cPPUsage; … … 200 197 Assert(vboxNetFltWinGetOpState(&pNetFlt->u.s.WinIf.PtState) == kVBoxNetDevOpState_Initialized); 201 198 202 RTSpinlockAcquire NoInts(pNetFlt->hSpinlock, &Tmp);199 RTSpinlockAcquire(pNetFlt->hSpinlock); 203 200 204 201 ASMAtomicUoWriteBool(&pNetFlt->fDisconnectedFromHost, true); … … 212 209 } 213 210 214 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock , &Tmp);211 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock); 215 212 216 213 vboxNetFltWinPtRequestsWaitComplete(pNetFlt); … … 1400 1397 DECLHIDDEN(bool) vboxNetFltWinPtCloseInterface(PVBOXNETFLTINS pNetFlt, PNDIS_STATUS pStatus) 1401 1398 { 1402 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; 1403 1404 RTSpinlockAcquireNoInts(pNetFlt->hSpinlock, &Tmp); 1399 RTSpinlockAcquire(pNetFlt->hSpinlock); 1405 1400 1406 1401 if (pNetFlt->u.s.WinIf.StateFlags.fInterfaceClosing) 1407 1402 { 1408 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock , &Tmp);1403 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock); 1409 1404 Assert(0); 1410 1405 return false; … … 1412 1407 if (pNetFlt->u.s.WinIf.hBinding == NULL) 1413 1408 { 1414 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock , &Tmp);1409 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock); 1415 1410 Assert(0); 1416 1411 return false; … … 1418 1413 1419 1414 pNetFlt->u.s.WinIf.StateFlags.fInterfaceClosing = TRUE; 1420 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock , &Tmp);1415 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock); 1421 1416 1422 1417 NdisResetEvent(&pNetFlt->u.s.WinIf.OpenCloseEvent); … … 1438 1433 { 1439 1434 NDIS_DEVICE_POWER_STATE enmPrevPowerState = vboxNetFltWinGetPowerState(&pNetFlt->u.s.WinIf.PtState); 1440 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; 1441 1442 RTSpinlockAcquireNoInts(pNetFlt->hSpinlock, &Tmp); 1435 1436 RTSpinlockAcquire(pNetFlt->hSpinlock); 1443 1437 1444 1438 vboxNetFltWinSetPowerState(&pNetFlt->u.s.WinIf.PtState, enmPowerState); … … 1450 1444 pNetFlt->u.s.WinIf.StateFlags.fStandBy = TRUE; 1451 1445 } 1452 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock , &Tmp);1446 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock); 1453 1447 vboxNetFltWinPtRequestsWaitComplete(pNetFlt); 1454 1448 vboxNetFltWinWaitDereference(&pNetFlt->u.s.WinIf.MpState); … … 1475 1469 { 1476 1470 pNetFlt->u.s.WinIf.StateFlags.fRequestInfo = VBOXNDISREQUEST_INPROGRESS; 1477 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock , &Tmp);1471 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock); 1478 1472 1479 1473 vboxNetFltWinMpRequestPost(pNetFlt); … … 1481 1475 else 1482 1476 { 1483 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock , &Tmp);1477 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock); 1484 1478 } 1485 1479 } -
trunk/src/VBox/HostDrivers/VBoxNetFlt/win/drv/VBoxNetFltRt-win.cpp
r37161 r40806 1059 1059 DECLHIDDEN(void) vboxNetFltWinQuFiniPacketQueue(PVBOXNETFLTINS pInstance) 1060 1060 { 1061 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;1062 1061 PINTNETSG pSG; 1063 1062 PPACKET_QUEUE_WORKER pWorker = &pInstance->u.s.PacketQueueWorker; … … 1065 1064 1066 1065 /* using the pPacketQueueSG as an indicator that the packet queue is initialized */ 1067 RTSpinlockAcquire NoInts((pInstance)->hSpinlock, &Tmp);1066 RTSpinlockAcquire((pInstance)->hSpinlock); 1068 1067 if (pWorker->pSG) 1069 1068 { 1070 1069 pSG = pWorker->pSG; 1071 1070 pWorker->pSG = NULL; 1072 RTSpinlockReleaseNoInts((pInstance)->hSpinlock , &Tmp);1071 RTSpinlockReleaseNoInts((pInstance)->hSpinlock); 1073 1072 KeSetEvent(&pWorker->KillEvent, 0, FALSE); 1074 1073 … … 1084 1083 else 1085 1084 { 1086 RTSpinlockReleaseNoInts((pInstance)->hSpinlock , &Tmp);1085 RTSpinlockReleaseNoInts((pInstance)->hSpinlock); 1087 1086 } 1088 1087 } … … 1845 1844 USHORT cbAnsiName = pBindToMiniportName->Length;/* the length is is bytes ; *2 ;RtlUnicodeStringToAnsiSize(pBindToMiniportName)*/ 1846 1845 CREATE_INSTANCE_CONTEXT Context; 1847 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;1848 1846 1849 1847 # ifndef VBOXNETADP … … 2611 2609 static int vboxNetFltWinDeleteInstance(PVBOXNETFLTINS pThis) 2612 2610 { 2613 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;2614 2611 LogFlow(("vboxNetFltWinDeleteInstance: pThis=0x%p \n", pThis)); 2615 2612 … … 2646 2643 DECLHIDDEN(NDIS_STATUS) vboxNetFltWinDetachFromInterface(PVBOXNETFLTINS pNetFlt, bool bOnUnbind) 2647 2644 { 2648 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;2649 2645 NDIS_STATUS Status; 2650 2646 int rc; … … 2787 2783 if (RT_SUCCESS(rc)) 2788 2784 { 2789 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;2790 2785 Assert(vboxNetFltWinGetWinIfState(pThis) == kVBoxWinIfState_Disconnected); 2791 2786 Assert(vboxNetFltWinGetOpState(&pThis->u.s.WinIf.MpState) == kVBoxNetDevOpState_Deinitialized); … … 2830 2825 #endif 2831 2826 /* 4. mark as connected */ 2832 RTSpinlockAcquire NoInts(pThis->hSpinlock, &Tmp);2827 RTSpinlockAcquire(pThis->hSpinlock); 2833 2828 ASMAtomicUoWriteBool(&pThis->fDisconnectedFromHost, false); 2834 RTSpinlockRelease NoInts(pThis->hSpinlock, &Tmp);2829 RTSpinlockRelease(pThis->hSpinlock); 2835 2830 2836 2831 pAttachInfo->Status = VINF_SUCCESS; -
trunk/src/VBox/HostDrivers/VBoxNetFlt/win/drv/VBoxNetFltRt-win.h
r36184 r40806 587 587 DECLINLINE(bool) vboxNetFltWinReferenceWinIfNetFlt(PVBOXNETFLTINS pNetFlt, bool * pbNetFltActive) 588 588 { 589 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; 590 591 RTSpinlockAcquireNoInts((pNetFlt)->hSpinlock, &Tmp); 589 RTSpinlockAcquire((pNetFlt)->hSpinlock); 592 590 #ifndef VBOXNETADP 593 591 if(!vboxNetFltWinDoReferenceDevices(&pNetFlt->u.s.WinIf.MpState, &pNetFlt->u.s.WinIf.PtState)) … … 596 594 #endif 597 595 { 598 RTSpinlockReleaseNoInts((pNetFlt)->hSpinlock , &Tmp);596 RTSpinlockReleaseNoInts((pNetFlt)->hSpinlock); 599 597 *pbNetFltActive = false; 600 598 return false; … … 604 602 { 605 603 vboxNetFltWinReferenceModePassThru(pNetFlt); 606 RTSpinlockReleaseNoInts((pNetFlt)->hSpinlock , &Tmp);604 RTSpinlockReleaseNoInts((pNetFlt)->hSpinlock); 607 605 *pbNetFltActive = false; 608 606 return true; … … 611 609 vboxNetFltRetain((pNetFlt), true /* fBusy */); 612 610 vboxNetFltWinReferenceModeNetFlt(pNetFlt); 613 RTSpinlockReleaseNoInts((pNetFlt)->hSpinlock , &Tmp);611 RTSpinlockReleaseNoInts((pNetFlt)->hSpinlock); 614 612 615 613 *pbNetFltActive = true; … … 619 617 DECLINLINE(bool) vboxNetFltWinIncReferenceWinIfNetFlt(PVBOXNETFLTINS pNetFlt, uint32_t v, bool *pbNetFltActive) 620 618 { 621 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;622 619 uint32_t i; 623 620 … … 629 626 } 630 627 631 RTSpinlockAcquire NoInts((pNetFlt)->hSpinlock, &Tmp);628 RTSpinlockAcquire((pNetFlt)->hSpinlock); 632 629 #ifndef VBOXNETADP 633 630 if(!vboxNetFltWinDoIncReferenceDevices(&pNetFlt->u.s.WinIf.MpState, &pNetFlt->u.s.WinIf.PtState, v)) … … 636 633 #endif 637 634 { 638 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock , &Tmp);635 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock); 639 636 *pbNetFltActive = false; 640 637 return false; … … 645 642 vboxNetFltWinIncReferenceModePassThru(pNetFlt, v); 646 643 647 RTSpinlockReleaseNoInts((pNetFlt)->hSpinlock , &Tmp);644 RTSpinlockReleaseNoInts((pNetFlt)->hSpinlock); 648 645 *pbNetFltActive = false; 649 646 return true; … … 654 651 vboxNetFltWinIncReferenceModeNetFlt(pNetFlt, v); 655 652 656 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock , &Tmp);653 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock); 657 654 658 655 /* we have marked it as busy, so can do the res references outside the lock */ … … 705 702 DECLINLINE(bool) vboxNetFltWinIncReferenceWinIf(PVBOXNETFLTINS pNetFlt, uint32_t v) 706 703 { 707 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER;708 709 704 Assert(v); 710 705 if(!v) … … 713 708 } 714 709 715 RTSpinlockAcquire NoInts(pNetFlt->hSpinlock, &Tmp);710 RTSpinlockAcquire(pNetFlt->hSpinlock); 716 711 #ifdef VBOXNETADP 717 712 if(vboxNetFltWinDoIncReferenceDevice(&pNetFlt->u.s.WinIf.MpState, v)) … … 720 715 #endif 721 716 { 722 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock , &Tmp);717 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock); 723 718 return true; 724 719 } 725 720 726 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock , &Tmp);721 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock); 727 722 return false; 728 723 } … … 730 725 DECLINLINE(bool) vboxNetFltWinReferenceWinIf(PVBOXNETFLTINS pNetFlt) 731 726 { 732 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; 733 RTSpinlockAcquireNoInts(pNetFlt->hSpinlock, &Tmp); 727 RTSpinlockAcquire(pNetFlt->hSpinlock); 734 728 #ifdef VBOXNETADP 735 729 if(vboxNetFltWinDoReferenceDevice(&pNetFlt->u.s.WinIf.MpState)) … … 738 732 #endif 739 733 { 740 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock , &Tmp);734 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock); 741 735 return true; 742 736 } 743 737 744 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock , &Tmp);738 RTSpinlockReleaseNoInts(pNetFlt->hSpinlock); 745 739 return false; 746 740 }
Note:
See TracChangeset
for help on using the changeset viewer.