Changeset 40806 in vbox for trunk/src/VBox/HostDrivers/VBoxNetFlt/linux
- Timestamp:
- Apr 6, 2012 9:05:19 PM (13 years ago)
- svn:sync-xref-src-repo-rev:
- 77321
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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)
Note:
See TracChangeset
for help on using the changeset viewer.