diff options
-rw-r--r-- | drivers/net/8139too.c | 3 | ||||
-rw-r--r-- | drivers/net/atlx/atl2.c | 4 | ||||
-rw-r--r-- | drivers/net/bcm63xx_enet.c | 2 | ||||
-rw-r--r-- | drivers/net/bnx2.c | 4 | ||||
-rw-r--r-- | drivers/net/cassini.c | 4 | ||||
-rw-r--r-- | drivers/net/cxgb3/cxgb3_main.c | 3 | ||||
-rw-r--r-- | drivers/net/e1000e/netdev.c | 6 | ||||
-rw-r--r-- | drivers/net/enic/enic_main.c | 2 | ||||
-rw-r--r-- | drivers/net/ibm_newemac/core.c | 2 | ||||
-rw-r--r-- | drivers/net/irda/mcs7780.c | 2 | ||||
-rw-r--r-- | drivers/net/ixgb/ixgb_main.c | 2 | ||||
-rw-r--r-- | drivers/net/ixgbevf/ixgbevf_main.c | 3 | ||||
-rw-r--r-- | drivers/net/mv643xx_eth.c | 2 | ||||
-rw-r--r-- | drivers/net/myri10ge/myri10ge.c | 2 | ||||
-rw-r--r-- | drivers/net/niu.c | 2 | ||||
-rw-r--r-- | drivers/net/pxa168_eth.c | 2 | ||||
-rw-r--r-- | drivers/net/r8169.c | 2 | ||||
-rw-r--r-- | drivers/net/s2io.c | 6 | ||||
-rw-r--r-- | drivers/net/sis190.c | 3 | ||||
-rw-r--r-- | drivers/net/tg3.c | 4 | ||||
-rw-r--r-- | drivers/net/usb/sierra_net.c | 5 | ||||
-rw-r--r-- | drivers/net/usb/usbnet.c | 3 | ||||
-rw-r--r-- | drivers/net/vmxnet3/vmxnet3_drv.c | 2 |
23 files changed, 36 insertions, 34 deletions
diff --git a/drivers/net/8139too.c b/drivers/net/8139too.c index f5166dccd8df..98517a373473 100644 --- a/drivers/net/8139too.c +++ b/drivers/net/8139too.c | |||
@@ -1092,10 +1092,11 @@ err_out: | |||
1092 | static void __devexit rtl8139_remove_one (struct pci_dev *pdev) | 1092 | static void __devexit rtl8139_remove_one (struct pci_dev *pdev) |
1093 | { | 1093 | { |
1094 | struct net_device *dev = pci_get_drvdata (pdev); | 1094 | struct net_device *dev = pci_get_drvdata (pdev); |
1095 | struct rtl8139_private *tp = netdev_priv(dev); | ||
1095 | 1096 | ||
1096 | assert (dev != NULL); | 1097 | assert (dev != NULL); |
1097 | 1098 | ||
1098 | flush_scheduled_work(); | 1099 | cancel_delayed_work_sync(&tp->thread); |
1099 | 1100 | ||
1100 | unregister_netdev (dev); | 1101 | unregister_netdev (dev); |
1101 | 1102 | ||
diff --git a/drivers/net/atlx/atl2.c b/drivers/net/atlx/atl2.c index 35b14bec1207..4e6f4e95a5a0 100644 --- a/drivers/net/atlx/atl2.c +++ b/drivers/net/atlx/atl2.c | |||
@@ -1504,8 +1504,8 @@ static void __devexit atl2_remove(struct pci_dev *pdev) | |||
1504 | 1504 | ||
1505 | del_timer_sync(&adapter->watchdog_timer); | 1505 | del_timer_sync(&adapter->watchdog_timer); |
1506 | del_timer_sync(&adapter->phy_config_timer); | 1506 | del_timer_sync(&adapter->phy_config_timer); |
1507 | 1507 | cancel_work_sync(&adapter->reset_task); | |
1508 | flush_scheduled_work(); | 1508 | cancel_work_sync(&adapter->link_chg_task); |
1509 | 1509 | ||
1510 | unregister_netdev(netdev); | 1510 | unregister_netdev(netdev); |
1511 | 1511 | ||
diff --git a/drivers/net/bcm63xx_enet.c b/drivers/net/bcm63xx_enet.c index ecfef240a303..e94a966af418 100644 --- a/drivers/net/bcm63xx_enet.c +++ b/drivers/net/bcm63xx_enet.c | |||
@@ -1097,7 +1097,7 @@ static int bcm_enet_stop(struct net_device *dev) | |||
1097 | enet_dma_writel(priv, 0, ENETDMA_IRMASK_REG(priv->tx_chan)); | 1097 | enet_dma_writel(priv, 0, ENETDMA_IRMASK_REG(priv->tx_chan)); |
1098 | 1098 | ||
1099 | /* make sure no mib update is scheduled */ | 1099 | /* make sure no mib update is scheduled */ |
1100 | flush_scheduled_work(); | 1100 | cancel_work_sync(&priv->mib_update_task); |
1101 | 1101 | ||
1102 | /* disable dma & mac */ | 1102 | /* disable dma & mac */ |
1103 | bcm_enet_disable_dma(priv, priv->tx_chan); | 1103 | bcm_enet_disable_dma(priv, priv->tx_chan); |
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c index 03209a37883e..5c811f3fa11a 100644 --- a/drivers/net/bnx2.c +++ b/drivers/net/bnx2.c | |||
@@ -8393,7 +8393,7 @@ bnx2_remove_one(struct pci_dev *pdev) | |||
8393 | struct net_device *dev = pci_get_drvdata(pdev); | 8393 | struct net_device *dev = pci_get_drvdata(pdev); |
8394 | struct bnx2 *bp = netdev_priv(dev); | 8394 | struct bnx2 *bp = netdev_priv(dev); |
8395 | 8395 | ||
8396 | flush_scheduled_work(); | 8396 | cancel_work_sync(&bp->reset_task); |
8397 | 8397 | ||
8398 | unregister_netdev(dev); | 8398 | unregister_netdev(dev); |
8399 | 8399 | ||
@@ -8431,7 +8431,7 @@ bnx2_suspend(struct pci_dev *pdev, pm_message_t state) | |||
8431 | if (!netif_running(dev)) | 8431 | if (!netif_running(dev)) |
8432 | return 0; | 8432 | return 0; |
8433 | 8433 | ||
8434 | flush_scheduled_work(); | 8434 | cancel_work_sync(&bp->reset_task); |
8435 | bnx2_netif_stop(bp, true); | 8435 | bnx2_netif_stop(bp, true); |
8436 | netif_device_detach(dev); | 8436 | netif_device_detach(dev); |
8437 | del_timer_sync(&bp->timer); | 8437 | del_timer_sync(&bp->timer); |
diff --git a/drivers/net/cassini.c b/drivers/net/cassini.c index d6b6d6aa565a..a8a32bc9aae6 100644 --- a/drivers/net/cassini.c +++ b/drivers/net/cassini.c | |||
@@ -3880,7 +3880,7 @@ static int cas_change_mtu(struct net_device *dev, int new_mtu) | |||
3880 | schedule_work(&cp->reset_task); | 3880 | schedule_work(&cp->reset_task); |
3881 | #endif | 3881 | #endif |
3882 | 3882 | ||
3883 | flush_scheduled_work(); | 3883 | flush_work_sync(&cp->reset_task); |
3884 | return 0; | 3884 | return 0; |
3885 | } | 3885 | } |
3886 | 3886 | ||
@@ -5177,7 +5177,7 @@ static void __devexit cas_remove_one(struct pci_dev *pdev) | |||
5177 | vfree(cp->fw_data); | 5177 | vfree(cp->fw_data); |
5178 | 5178 | ||
5179 | mutex_lock(&cp->pm_mutex); | 5179 | mutex_lock(&cp->pm_mutex); |
5180 | flush_scheduled_work(); | 5180 | cancel_work_sync(&cp->reset_task); |
5181 | if (cp->hw_running) | 5181 | if (cp->hw_running) |
5182 | cas_shutdown(cp); | 5182 | cas_shutdown(cp); |
5183 | mutex_unlock(&cp->pm_mutex); | 5183 | mutex_unlock(&cp->pm_mutex); |
diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c index 386461750d0f..4d538a4e9d55 100644 --- a/drivers/net/cxgb3/cxgb3_main.c +++ b/drivers/net/cxgb3/cxgb3_main.c | |||
@@ -1359,6 +1359,7 @@ out: | |||
1359 | static int offload_close(struct t3cdev *tdev) | 1359 | static int offload_close(struct t3cdev *tdev) |
1360 | { | 1360 | { |
1361 | struct adapter *adapter = tdev2adap(tdev); | 1361 | struct adapter *adapter = tdev2adap(tdev); |
1362 | struct t3c_data *td = T3C_DATA(tdev); | ||
1362 | 1363 | ||
1363 | if (!test_bit(OFFLOAD_DEVMAP_BIT, &adapter->open_device_map)) | 1364 | if (!test_bit(OFFLOAD_DEVMAP_BIT, &adapter->open_device_map)) |
1364 | return 0; | 1365 | return 0; |
@@ -1369,7 +1370,7 @@ static int offload_close(struct t3cdev *tdev) | |||
1369 | sysfs_remove_group(&tdev->lldev->dev.kobj, &offload_attr_group); | 1370 | sysfs_remove_group(&tdev->lldev->dev.kobj, &offload_attr_group); |
1370 | 1371 | ||
1371 | /* Flush work scheduled while releasing TIDs */ | 1372 | /* Flush work scheduled while releasing TIDs */ |
1372 | flush_scheduled_work(); | 1373 | flush_work_sync(&td->tid_release_task); |
1373 | 1374 | ||
1374 | tdev->lldev = NULL; | 1375 | tdev->lldev = NULL; |
1375 | cxgb3_set_dummy_ops(tdev); | 1376 | cxgb3_set_dummy_ops(tdev); |
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c index 5530d0bdd11a..02d093d1dd5c 100644 --- a/drivers/net/e1000e/netdev.c +++ b/drivers/net/e1000e/netdev.c | |||
@@ -6028,8 +6028,8 @@ static void __devexit e1000_remove(struct pci_dev *pdev) | |||
6028 | bool down = test_bit(__E1000_DOWN, &adapter->state); | 6028 | bool down = test_bit(__E1000_DOWN, &adapter->state); |
6029 | 6029 | ||
6030 | /* | 6030 | /* |
6031 | * flush_scheduled work may reschedule our watchdog task, so | 6031 | * The timers may be rescheduled, so explicitly disable them |
6032 | * explicitly disable watchdog tasks from being rescheduled | 6032 | * from being rescheduled. |
6033 | */ | 6033 | */ |
6034 | if (!down) | 6034 | if (!down) |
6035 | set_bit(__E1000_DOWN, &adapter->state); | 6035 | set_bit(__E1000_DOWN, &adapter->state); |
@@ -6040,8 +6040,8 @@ static void __devexit e1000_remove(struct pci_dev *pdev) | |||
6040 | cancel_work_sync(&adapter->watchdog_task); | 6040 | cancel_work_sync(&adapter->watchdog_task); |
6041 | cancel_work_sync(&adapter->downshift_task); | 6041 | cancel_work_sync(&adapter->downshift_task); |
6042 | cancel_work_sync(&adapter->update_phy_task); | 6042 | cancel_work_sync(&adapter->update_phy_task); |
6043 | cancel_work_sync(&adapter->led_blink_task); | ||
6043 | cancel_work_sync(&adapter->print_hang_task); | 6044 | cancel_work_sync(&adapter->print_hang_task); |
6044 | flush_scheduled_work(); | ||
6045 | 6045 | ||
6046 | if (!(netdev->flags & IFF_UP)) | 6046 | if (!(netdev->flags & IFF_UP)) |
6047 | e1000_power_down_phy(adapter); | 6047 | e1000_power_down_phy(adapter); |
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c index 9befd54ce6e1..77d91381a74d 100644 --- a/drivers/net/enic/enic_main.c +++ b/drivers/net/enic/enic_main.c | |||
@@ -2834,7 +2834,7 @@ static void __devexit enic_remove(struct pci_dev *pdev) | |||
2834 | if (netdev) { | 2834 | if (netdev) { |
2835 | struct enic *enic = netdev_priv(netdev); | 2835 | struct enic *enic = netdev_priv(netdev); |
2836 | 2836 | ||
2837 | flush_scheduled_work(); | 2837 | cancel_work_sync(&enic->reset); |
2838 | unregister_netdev(netdev); | 2838 | unregister_netdev(netdev); |
2839 | enic_dev_deinit(enic); | 2839 | enic_dev_deinit(enic); |
2840 | vnic_dev_close(enic->vdev); | 2840 | vnic_dev_close(enic->vdev); |
diff --git a/drivers/net/ibm_newemac/core.c b/drivers/net/ibm_newemac/core.c index 06bb9b799458..8f11d29a5828 100644 --- a/drivers/net/ibm_newemac/core.c +++ b/drivers/net/ibm_newemac/core.c | |||
@@ -2950,7 +2950,7 @@ static int __devexit emac_remove(struct platform_device *ofdev) | |||
2950 | 2950 | ||
2951 | unregister_netdev(dev->ndev); | 2951 | unregister_netdev(dev->ndev); |
2952 | 2952 | ||
2953 | flush_scheduled_work(); | 2953 | cancel_work_sync(&dev->reset_work); |
2954 | 2954 | ||
2955 | if (emac_has_feature(dev, EMAC_FTR_HAS_TAH)) | 2955 | if (emac_has_feature(dev, EMAC_FTR_HAS_TAH)) |
2956 | tah_detach(dev->tah_dev, dev->tah_port); | 2956 | tah_detach(dev->tah_dev, dev->tah_port); |
diff --git a/drivers/net/irda/mcs7780.c b/drivers/net/irda/mcs7780.c index 74b20f179cea..cc821de2c966 100644 --- a/drivers/net/irda/mcs7780.c +++ b/drivers/net/irda/mcs7780.c | |||
@@ -959,7 +959,7 @@ static void mcs_disconnect(struct usb_interface *intf) | |||
959 | if (!mcs) | 959 | if (!mcs) |
960 | return; | 960 | return; |
961 | 961 | ||
962 | flush_scheduled_work(); | 962 | cancel_work_sync(&mcs->work); |
963 | 963 | ||
964 | unregister_netdev(mcs->netdev); | 964 | unregister_netdev(mcs->netdev); |
965 | free_netdev(mcs->netdev); | 965 | free_netdev(mcs->netdev); |
diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c index 2e98506d12e3..b021798ef49f 100644 --- a/drivers/net/ixgb/ixgb_main.c +++ b/drivers/net/ixgb/ixgb_main.c | |||
@@ -527,7 +527,7 @@ ixgb_remove(struct pci_dev *pdev) | |||
527 | struct net_device *netdev = pci_get_drvdata(pdev); | 527 | struct net_device *netdev = pci_get_drvdata(pdev); |
528 | struct ixgb_adapter *adapter = netdev_priv(netdev); | 528 | struct ixgb_adapter *adapter = netdev_priv(netdev); |
529 | 529 | ||
530 | flush_scheduled_work(); | 530 | cancel_work_sync(&adapter->tx_timeout_task); |
531 | 531 | ||
532 | unregister_netdev(netdev); | 532 | unregister_netdev(netdev); |
533 | 533 | ||
diff --git a/drivers/net/ixgbevf/ixgbevf_main.c b/drivers/net/ixgbevf/ixgbevf_main.c index 2216a3c8b12b..809e38ce8a13 100644 --- a/drivers/net/ixgbevf/ixgbevf_main.c +++ b/drivers/net/ixgbevf/ixgbevf_main.c | |||
@@ -3484,10 +3484,9 @@ static void __devexit ixgbevf_remove(struct pci_dev *pdev) | |||
3484 | 3484 | ||
3485 | del_timer_sync(&adapter->watchdog_timer); | 3485 | del_timer_sync(&adapter->watchdog_timer); |
3486 | 3486 | ||
3487 | cancel_work_sync(&adapter->reset_task); | ||
3487 | cancel_work_sync(&adapter->watchdog_task); | 3488 | cancel_work_sync(&adapter->watchdog_task); |
3488 | 3489 | ||
3489 | flush_scheduled_work(); | ||
3490 | |||
3491 | if (adapter->netdev_registered) { | 3490 | if (adapter->netdev_registered) { |
3492 | unregister_netdev(netdev); | 3491 | unregister_netdev(netdev); |
3493 | adapter->netdev_registered = false; | 3492 | adapter->netdev_registered = false; |
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c index ce31e74a559b..02076e16542a 100644 --- a/drivers/net/mv643xx_eth.c +++ b/drivers/net/mv643xx_eth.c | |||
@@ -2978,7 +2978,7 @@ static int mv643xx_eth_remove(struct platform_device *pdev) | |||
2978 | unregister_netdev(mp->dev); | 2978 | unregister_netdev(mp->dev); |
2979 | if (mp->phy != NULL) | 2979 | if (mp->phy != NULL) |
2980 | phy_detach(mp->phy); | 2980 | phy_detach(mp->phy); |
2981 | flush_scheduled_work(); | 2981 | cancel_work_sync(&mp->tx_timeout_task); |
2982 | free_netdev(mp->dev); | 2982 | free_netdev(mp->dev); |
2983 | 2983 | ||
2984 | platform_set_drvdata(pdev, NULL); | 2984 | platform_set_drvdata(pdev, NULL); |
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c index 8524cc40ec57..1ce0207e62a9 100644 --- a/drivers/net/myri10ge/myri10ge.c +++ b/drivers/net/myri10ge/myri10ge.c | |||
@@ -4067,7 +4067,7 @@ static void myri10ge_remove(struct pci_dev *pdev) | |||
4067 | if (mgp == NULL) | 4067 | if (mgp == NULL) |
4068 | return; | 4068 | return; |
4069 | 4069 | ||
4070 | flush_scheduled_work(); | 4070 | cancel_work_sync(&mgp->watchdog_work); |
4071 | netdev = mgp->dev; | 4071 | netdev = mgp->dev; |
4072 | unregister_netdev(netdev); | 4072 | unregister_netdev(netdev); |
4073 | 4073 | ||
diff --git a/drivers/net/niu.c b/drivers/net/niu.c index 781e368329f9..f64c42414bd7 100644 --- a/drivers/net/niu.c +++ b/drivers/net/niu.c | |||
@@ -9917,7 +9917,7 @@ static int niu_suspend(struct pci_dev *pdev, pm_message_t state) | |||
9917 | if (!netif_running(dev)) | 9917 | if (!netif_running(dev)) |
9918 | return 0; | 9918 | return 0; |
9919 | 9919 | ||
9920 | flush_scheduled_work(); | 9920 | flush_work_sync(&np->reset_task); |
9921 | niu_netif_stop(np); | 9921 | niu_netif_stop(np); |
9922 | 9922 | ||
9923 | del_timer_sync(&np->timer); | 9923 | del_timer_sync(&np->timer); |
diff --git a/drivers/net/pxa168_eth.c b/drivers/net/pxa168_eth.c index 04ed27d0b6be..1b63c8aef121 100644 --- a/drivers/net/pxa168_eth.c +++ b/drivers/net/pxa168_eth.c | |||
@@ -1602,7 +1602,7 @@ static int pxa168_eth_remove(struct platform_device *pdev) | |||
1602 | mdiobus_unregister(pep->smi_bus); | 1602 | mdiobus_unregister(pep->smi_bus); |
1603 | mdiobus_free(pep->smi_bus); | 1603 | mdiobus_free(pep->smi_bus); |
1604 | unregister_netdev(dev); | 1604 | unregister_netdev(dev); |
1605 | flush_scheduled_work(); | 1605 | cancel_work_sync(&pep->tx_timeout_task); |
1606 | free_netdev(dev); | 1606 | free_netdev(dev); |
1607 | platform_set_drvdata(pdev, NULL); | 1607 | platform_set_drvdata(pdev, NULL); |
1608 | return 0; | 1608 | return 0; |
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c index 7d33ef4bcb4a..98d792c33877 100644 --- a/drivers/net/r8169.c +++ b/drivers/net/r8169.c | |||
@@ -3240,7 +3240,7 @@ static void __devexit rtl8169_remove_one(struct pci_dev *pdev) | |||
3240 | struct net_device *dev = pci_get_drvdata(pdev); | 3240 | struct net_device *dev = pci_get_drvdata(pdev); |
3241 | struct rtl8169_private *tp = netdev_priv(dev); | 3241 | struct rtl8169_private *tp = netdev_priv(dev); |
3242 | 3242 | ||
3243 | flush_scheduled_work(); | 3243 | cancel_delayed_work_sync(&tp->task); |
3244 | 3244 | ||
3245 | unregister_netdev(dev); | 3245 | unregister_netdev(dev); |
3246 | 3246 | ||
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c index 9a1e32fb720b..39c17cecb8b9 100644 --- a/drivers/net/s2io.c +++ b/drivers/net/s2io.c | |||
@@ -8341,9 +8341,11 @@ static void __devexit s2io_rem_nic(struct pci_dev *pdev) | |||
8341 | return; | 8341 | return; |
8342 | } | 8342 | } |
8343 | 8343 | ||
8344 | flush_scheduled_work(); | ||
8345 | |||
8346 | sp = netdev_priv(dev); | 8344 | sp = netdev_priv(dev); |
8345 | |||
8346 | cancel_work_sync(&sp->rst_timer_task); | ||
8347 | cancel_work_sync(&sp->set_link_task); | ||
8348 | |||
8347 | unregister_netdev(dev); | 8349 | unregister_netdev(dev); |
8348 | 8350 | ||
8349 | free_shared_mem(sp); | 8351 | free_shared_mem(sp); |
diff --git a/drivers/net/sis190.c b/drivers/net/sis190.c index a5d6a6bd0c1a..3406ed870917 100644 --- a/drivers/net/sis190.c +++ b/drivers/net/sis190.c | |||
@@ -1915,9 +1915,10 @@ err_release_board: | |||
1915 | static void __devexit sis190_remove_one(struct pci_dev *pdev) | 1915 | static void __devexit sis190_remove_one(struct pci_dev *pdev) |
1916 | { | 1916 | { |
1917 | struct net_device *dev = pci_get_drvdata(pdev); | 1917 | struct net_device *dev = pci_get_drvdata(pdev); |
1918 | struct sis190_private *tp = netdev_priv(dev); | ||
1918 | 1919 | ||
1919 | sis190_mii_remove(dev); | 1920 | sis190_mii_remove(dev); |
1920 | flush_scheduled_work(); | 1921 | cancel_work_sync(&tp->phy_task); |
1921 | unregister_netdev(dev); | 1922 | unregister_netdev(dev); |
1922 | sis190_release_board(pdev); | 1923 | sis190_release_board(pdev); |
1923 | pci_set_drvdata(pdev, NULL); | 1924 | pci_set_drvdata(pdev, NULL); |
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index 5faa87d86c66..57e19fb1324f 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c | |||
@@ -15034,7 +15034,7 @@ static void __devexit tg3_remove_one(struct pci_dev *pdev) | |||
15034 | if (tp->fw) | 15034 | if (tp->fw) |
15035 | release_firmware(tp->fw); | 15035 | release_firmware(tp->fw); |
15036 | 15036 | ||
15037 | flush_scheduled_work(); | 15037 | cancel_work_sync(&tp->reset_task); |
15038 | 15038 | ||
15039 | if (tp->tg3_flags3 & TG3_FLG3_USE_PHYLIB) { | 15039 | if (tp->tg3_flags3 & TG3_FLG3_USE_PHYLIB) { |
15040 | tg3_phy_fini(tp); | 15040 | tg3_phy_fini(tp); |
@@ -15073,7 +15073,7 @@ static int tg3_suspend(struct pci_dev *pdev, pm_message_t state) | |||
15073 | if (!netif_running(dev)) | 15073 | if (!netif_running(dev)) |
15074 | return 0; | 15074 | return 0; |
15075 | 15075 | ||
15076 | flush_scheduled_work(); | 15076 | flush_work_sync(&tp->reset_task); |
15077 | tg3_phy_stop(tp); | 15077 | tg3_phy_stop(tp); |
15078 | tg3_netif_stop(tp); | 15078 | tg3_netif_stop(tp); |
15079 | 15079 | ||
diff --git a/drivers/net/usb/sierra_net.c b/drivers/net/usb/sierra_net.c index d1ac15c95faf..ed1b43210584 100644 --- a/drivers/net/usb/sierra_net.c +++ b/drivers/net/usb/sierra_net.c | |||
@@ -802,10 +802,9 @@ static void sierra_net_unbind(struct usbnet *dev, struct usb_interface *intf) | |||
802 | 802 | ||
803 | dev_dbg(&dev->udev->dev, "%s", __func__); | 803 | dev_dbg(&dev->udev->dev, "%s", __func__); |
804 | 804 | ||
805 | /* Kill the timer then flush the work queue */ | 805 | /* kill the timer and work */ |
806 | del_timer_sync(&priv->sync_timer); | 806 | del_timer_sync(&priv->sync_timer); |
807 | 807 | cancel_work_sync(&priv->sierra_net_kevent); | |
808 | flush_scheduled_work(); | ||
809 | 808 | ||
810 | /* tell modem we are going away */ | 809 | /* tell modem we are going away */ |
811 | status = sierra_net_send_cmd(dev, priv->shdwn_msg, | 810 | status = sierra_net_send_cmd(dev, priv->shdwn_msg, |
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c index cff74b81a7d2..ed9a41643ff4 100644 --- a/drivers/net/usb/usbnet.c +++ b/drivers/net/usb/usbnet.c | |||
@@ -1248,8 +1248,7 @@ void usbnet_disconnect (struct usb_interface *intf) | |||
1248 | net = dev->net; | 1248 | net = dev->net; |
1249 | unregister_netdev (net); | 1249 | unregister_netdev (net); |
1250 | 1250 | ||
1251 | /* we don't hold rtnl here ... */ | 1251 | cancel_work_sync(&dev->kevent); |
1252 | flush_scheduled_work (); | ||
1253 | 1252 | ||
1254 | if (dev->driver_info->unbind) | 1253 | if (dev->driver_info->unbind) |
1255 | dev->driver_info->unbind (dev, intf); | 1254 | dev->driver_info->unbind (dev, intf); |
diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c index 65860a998321..0169be7694a9 100644 --- a/drivers/net/vmxnet3/vmxnet3_drv.c +++ b/drivers/net/vmxnet3/vmxnet3_drv.c | |||
@@ -3069,7 +3069,7 @@ vmxnet3_remove_device(struct pci_dev *pdev) | |||
3069 | #endif | 3069 | #endif |
3070 | num_rx_queues = 1; | 3070 | num_rx_queues = 1; |
3071 | 3071 | ||
3072 | flush_scheduled_work(); | 3072 | cancel_work_sync(&adapter->work); |
3073 | 3073 | ||
3074 | unregister_netdev(netdev); | 3074 | unregister_netdev(netdev); |
3075 | 3075 | ||