net: stmmac: restart LPI timer after cleaning transmit descriptors
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Mon, 13 Jan 2025 11:46:20 +0000 (11:46 +0000)
committerJakub Kicinski <kuba@kernel.org>
Wed, 15 Jan 2025 02:22:04 +0000 (18:22 -0800)
Fix a bug in the LPI handling, where it is possible to immediately
enter LPI mode after cleaning the transmit descriptors when all queues
are empty rather than waiting for the LPI timeout to expire.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://patch.msgid.link/E1tXItg-000MBg-TW@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c

index 72f2700..acd6994 100644 (file)
@@ -2795,7 +2795,7 @@ static int stmmac_tx_clean(struct stmmac_priv *priv, int budget, u32 queue,
        }
 
        if (priv->eee_sw_timer_en && !priv->tx_path_in_lpi_mode)
-               stmmac_try_to_start_sw_lpi(priv);
+               stmmac_restart_sw_lpi_timer(priv);
 
        /* We still have pending packets, let's call for a new scheduling */
        if (tx_q->dirty_tx != tx_q->cur_tx)