lkml.org 
[lkml]   [2020]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 147/408] net: stmmac: use netif_tx_start|stop_all_queues() function
    Date
    From: Ong Boon Leong <boon.leong.ong@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.ong@intel.com>
    Signed-off-by: Voon Weifeng <weifeng.voon@intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@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


    \
     
     \ /
      Last update: 2020-10-27 18:39    [W:4.176 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site