When RX Coalesce settings are set to all zero (which is a valid setting)
we will currently get a divide-by-zero error. Fix it.

Signed-off-by: Jose Abreu <[email protected]>

---
Cc: Giuseppe Cavallaro <[email protected]>
Cc: Alexandre Torgue <[email protected]>
Cc: Jose Abreu <[email protected]>
Cc: "David S. Miller" <[email protected]>
Cc: Maxime Coquelin <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
---
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c 
b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 686b82068142..6e44013b20cc 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -3418,7 +3418,9 @@ static inline void stmmac_rx_refill(struct stmmac_priv 
*priv, u32 queue)
                stmmac_refill_desc3(priv, rx_q, p);
 
                rx_q->rx_count_frames++;
-               rx_q->rx_count_frames %= priv->rx_coal_frames;
+               rx_q->rx_count_frames += priv->rx_coal_frames;
+               if (rx_q->rx_count_frames > priv->rx_coal_frames)
+                       rx_q->rx_count_frames = 0;
                use_rx_wd = priv->use_riwt && rx_q->rx_count_frames;
 
                dma_wmb();
-- 
2.7.4

Reply via email to