[PATCH net-next v4 0/3] fix the MTL fifo and DMA race condition

From: Abid Ali

Date: Fri Aug 14 2026 - 02:09:21 EST


To: Andrew Lunn <andrew+netdev@xxxxxxx>
To: David S. Miller <davem@xxxxxxxxxxxxx>
To: Eric Dumazet <edumazet@xxxxxxxxxx>
To: Jakub Kicinski <kuba@xxxxxxxxxx>
To: Paolo Abeni <pabeni@xxxxxxxxxx>
To: Maxime Coquelin <mcoquelin.stm32@xxxxxxxxx>
To: Alexandre Torgue <alexandre.torgue@xxxxxxxxxxx>
To: Russell King <linux@xxxxxxxxxxxxxxx>
To: Qingfang Deng <qingfang.deng@xxxxxxxxx>
To: Maxime Chevallier <maxime.chevallier@xxxxxxxxxxx>
Cc: netdev@xxxxxxxxxxxxxxx
Cc: linux-stm32@xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Abid Ali <dev.taqnialabs@xxxxxxxxx>

Changes in v4:
- Rebased on net-next.
- Link to v3: https://lore.kernel.org/r/20260813-stmmac-rx-fifo-block-v3-0-738acbee55d9@xxxxxxxxx

Changes in v3:
- v2 tried to fix the ordering in teardown path, but it still would
not follow the ideal flow mentioned in the databook. So have
seperated the patches to deal with the teardown and some findings
from sashiko.

- "net: stmmac: enable MAC rx/tx after DMA start": reduced in scope,
now only moves the MAC enable after stmmac_start_all_dma() in
stmmac_hw_setup() and stmmac_xdp_open().
This is to handle the overflow scenario during bootup causing hang.
The teardown side in __stmmac_release() is no longer touched here.
This change could go independently fix the overflow hang at bootup.

- Added "net: stmmac: xgmac: tear the datapath down in the documented
order": for ensuring ordered sequence is followed for teardown.

- Added "net: stmmac: xgmac: decouple the MAC Rx/Tx enables from the
DMA ops": drops the global TE/RE writes from the per-channel XGMAC
DMA start/stop ops.

- Link to v2: https://lore.kernel.org/r/20260727-stmmac-rx-fifo-block-v2-1-4dc3457d31d0@xxxxxxxxx

Changes in v2:
- Corrected the ordering in teardown for xdp at stmmac_xdp_release().
- Link to v1: https://lore.kernel.org/r/20260726-stmmac-rx-fifo-block-v1-1-45ab094b6c02@xxxxxxxxx

---
Abid Ali (3):
net: stmmac: enable MAC rx/tx after DMA start
net: stmmac: xgmac: tear the datapath down in the documented order
net: stmmac: xgmac: decouple the MAC Rx/Tx enables from the DMA ops

drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h | 8 ++
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c | 94 +++++++++++++++++++---
drivers/net/ethernet/stmicro/stmmac/hwif.h | 17 ++++
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 85 ++++++++++++++-----
4 files changed, 170 insertions(+), 34 deletions(-)
---
base-commit: 4f93b12cf7b25fbf8e73d222722805b049f0a6d3
change-id: 20260726-stmmac-rx-fifo-block-ef589c38f96b

Best regards,
--
Abid Ali <dev.taqnialabs@xxxxxxxxx>