diff options
Diffstat (limited to 'drivers/net/mlx4/en_netdev.c')
-rw-r--r-- | drivers/net/mlx4/en_netdev.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/net/mlx4/en_netdev.c b/drivers/net/mlx4/en_netdev.c index e02bafdd3682..93f4abd990a9 100644 --- a/drivers/net/mlx4/en_netdev.c +++ b/drivers/net/mlx4/en_netdev.c | |||
@@ -668,7 +668,7 @@ int mlx4_en_start_port(struct net_device *dev) | |||
668 | queue_work(mdev->workqueue, &priv->mcast_task); | 668 | queue_work(mdev->workqueue, &priv->mcast_task); |
669 | 669 | ||
670 | priv->port_up = true; | 670 | priv->port_up = true; |
671 | netif_start_queue(dev); | 671 | netif_tx_start_all_queues(dev); |
672 | return 0; | 672 | return 0; |
673 | 673 | ||
674 | mac_err: | 674 | mac_err: |
@@ -700,14 +700,14 @@ void mlx4_en_stop_port(struct net_device *dev) | |||
700 | en_dbg(DRV, priv, "stop port called while port already down\n"); | 700 | en_dbg(DRV, priv, "stop port called while port already down\n"); |
701 | return; | 701 | return; |
702 | } | 702 | } |
703 | netif_stop_queue(dev); | ||
704 | 703 | ||
705 | /* Synchronize with tx routine */ | 704 | /* Synchronize with tx routine */ |
706 | netif_tx_lock_bh(dev); | 705 | netif_tx_lock_bh(dev); |
707 | priv->port_up = false; | 706 | netif_tx_stop_all_queues(dev); |
708 | netif_tx_unlock_bh(dev); | 707 | netif_tx_unlock_bh(dev); |
709 | 708 | ||
710 | /* close port*/ | 709 | /* close port*/ |
710 | priv->port_up = false; | ||
711 | mlx4_CLOSE_PORT(mdev->dev, priv->port); | 711 | mlx4_CLOSE_PORT(mdev->dev, priv->port); |
712 | 712 | ||
713 | /* Unregister Mac address for the port */ | 713 | /* Unregister Mac address for the port */ |
@@ -881,7 +881,6 @@ void mlx4_en_destroy_netdev(struct net_device *dev) | |||
881 | mlx4_free_hwq_res(mdev->dev, &priv->res, MLX4_EN_PAGE_SIZE); | 881 | mlx4_free_hwq_res(mdev->dev, &priv->res, MLX4_EN_PAGE_SIZE); |
882 | 882 | ||
883 | cancel_delayed_work(&priv->stats_task); | 883 | cancel_delayed_work(&priv->stats_task); |
884 | cancel_delayed_work(&priv->refill_task); | ||
885 | /* flush any pending task for this netdev */ | 884 | /* flush any pending task for this netdev */ |
886 | flush_workqueue(mdev->workqueue); | 885 | flush_workqueue(mdev->workqueue); |
887 | 886 | ||
@@ -986,7 +985,6 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port, | |||
986 | spin_lock_init(&priv->stats_lock); | 985 | spin_lock_init(&priv->stats_lock); |
987 | INIT_WORK(&priv->mcast_task, mlx4_en_do_set_multicast); | 986 | INIT_WORK(&priv->mcast_task, mlx4_en_do_set_multicast); |
988 | INIT_WORK(&priv->mac_task, mlx4_en_do_set_mac); | 987 | INIT_WORK(&priv->mac_task, mlx4_en_do_set_mac); |
989 | INIT_DELAYED_WORK(&priv->refill_task, mlx4_en_rx_refill); | ||
990 | INIT_WORK(&priv->watchdog_task, mlx4_en_restart); | 988 | INIT_WORK(&priv->watchdog_task, mlx4_en_restart); |
991 | INIT_WORK(&priv->linkstate_task, mlx4_en_linkstate); | 989 | INIT_WORK(&priv->linkstate_task, mlx4_en_linkstate); |
992 | INIT_DELAYED_WORK(&priv->stats_task, mlx4_en_do_get_stats); | 990 | INIT_DELAYED_WORK(&priv->stats_task, mlx4_en_do_get_stats); |