From: Ong Boon Leong <boon.leong....@intel.com>

[ Upstream commit 9f19306d166688a73356aa636c62e698bf2063cc ]

The current implementation of stmmac_stop_all_queues() and
stmmac_start_all_queues() will not work correctly when the value of
tx_queues_to_use is changed through ethtool -L DEVNAME rx N tx M command.

Also, netif_tx_start|stop_all_queues() are only needed in driver open()
and close() only.

Fixes: c22a3f48 net: stmmac: adding multiple napi mechanism

Signed-off-by: Ong Boon Leong <boon.leong....@intel.com>
Signed-off-by: Voon Weifeng <weifeng.v...@intel.com>
Signed-off-by: David S. Miller <da...@davemloft.net>
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 .../net/ethernet/stmicro/stmmac/stmmac_main.c | 33 +------------------
 1 file changed, 1 insertion(+), 32 deletions(-)

diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c 
b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 982be75fde833..189cdb7633671 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -175,32 +175,6 @@ static void stmmac_enable_all_queues(struct stmmac_priv 
*priv)
        }
 }
 
-/**
- * stmmac_stop_all_queues - Stop all queues
- * @priv: driver private structure
- */
-static void stmmac_stop_all_queues(struct stmmac_priv *priv)
-{
-       u32 tx_queues_cnt = priv->plat->tx_queues_to_use;
-       u32 queue;
-
-       for (queue = 0; queue < tx_queues_cnt; queue++)
-               netif_tx_stop_queue(netdev_get_tx_queue(priv->dev, queue));
-}
-
-/**
- * stmmac_start_all_queues - Start all queues
- * @priv: driver private structure
- */
-static void stmmac_start_all_queues(struct stmmac_priv *priv)
-{
-       u32 tx_queues_cnt = priv->plat->tx_queues_to_use;
-       u32 queue;
-
-       for (queue = 0; queue < tx_queues_cnt; queue++)
-               netif_tx_start_queue(netdev_get_tx_queue(priv->dev, queue));
-}
-
 static void stmmac_service_event_schedule(struct stmmac_priv *priv)
 {
        if (!test_bit(STMMAC_DOWN, &priv->state) &&
@@ -2737,7 +2711,7 @@ static int stmmac_open(struct net_device *dev)
        }
 
        stmmac_enable_all_queues(priv);
-       stmmac_start_all_queues(priv);
+       netif_tx_start_all_queues(priv->dev);
 
        return 0;
 
@@ -2778,8 +2752,6 @@ static int stmmac_release(struct net_device *dev)
        phylink_stop(priv->phylink);
        phylink_disconnect_phy(priv->phylink);
 
-       stmmac_stop_all_queues(priv);
-
        stmmac_disable_all_queues(priv);
 
        for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -4770,7 +4742,6 @@ int stmmac_suspend(struct device *dev)
        mutex_lock(&priv->lock);
 
        netif_device_detach(ndev);
-       stmmac_stop_all_queues(priv);
 
        stmmac_disable_all_queues(priv);
 
@@ -4883,8 +4854,6 @@ int stmmac_resume(struct device *dev)
 
        stmmac_enable_all_queues(priv);
 
-       stmmac_start_all_queues(priv);
-
        mutex_unlock(&priv->lock);
 
        if (!device_may_wakeup(priv->device)) {
-- 
2.25.1



Reply via email to