| From b6e11efdf709ebe63bf5c94046da73025a4c6e5c Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 13 Nov 2023 19:42:49 +0200 |
| Subject: net: stmmac: fix rx budget limit check |
| |
| From: Baruch Siach <baruch@tkos.co.il> |
| |
| [ Upstream commit fa02de9e75889915b554eda1964a631fd019973b ] |
| |
| The while loop condition verifies 'count < limit'. Neither value change |
| before the 'count >= limit' check. As is this check is dead code. But |
| code inspection reveals a code path that modifies 'count' and then goto |
| 'drain_data' and back to 'read_again'. So there is a need to verify |
| count value sanity after 'read_again'. |
| |
| Move 'read_again' up to fix the count limit check. |
| |
| Fixes: ec222003bd94 ("net: stmmac: Prepare to add Split Header support") |
| Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
| Reviewed-by: Serge Semin <fancer.lancer@gmail.com> |
| Link: https://lore.kernel.org/r/d9486296c3b6b12ab3a0515fcd47d56447a07bfc.1699897370.git.baruch@tkos.co.il |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c |
| index e521ab508f030..4eaa65e8d58f2 100644 |
| --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c |
| +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c |
| @@ -3536,10 +3536,10 @@ static int stmmac_rx(struct stmmac_priv *priv, int limit, u32 queue) |
| len = 0; |
| } |
| |
| +read_again: |
| if (count >= limit) |
| break; |
| |
| -read_again: |
| buf1_len = 0; |
| buf2_len = 0; |
| entry = next_entry; |
| -- |
| 2.42.0 |
| |