diff options
author | Mattias Barthel <mattias.barthel@atlascopco.com> | 2025-04-29 12:08:26 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2025-05-01 17:10:00 +0300 |
commit | a179aad12badc43201cbf45d1e8ed2c1383c76b9 (patch) | |
tree | 4c7f5cd7876e48e5d85529ec8a7de184aefa8798 /lib/mpi/mpi-pow.c | |
parent | 2d52e2e38b85c8b7bc00dca55c2499f46f8c8198 (diff) | |
download | linux-a179aad12badc43201cbf45d1e8ed2c1383c76b9.tar.xz |
net: fec: ERR007885 Workaround for conventional TX
Activate TX hang workaround also in
fec_enet_txq_submit_skb() when TSO is not enabled.
Errata: ERR007885
Symptoms: NETDEV WATCHDOG: eth0 (fec): transmit queue 0 timed out
commit 37d6017b84f7 ("net: fec: Workaround for imx6sx enet tx hang when enable three queues")
There is a TDAR race condition for mutliQ when the software sets TDAR
and the UDMA clears TDAR simultaneously or in a small window (2-4 cycles).
This will cause the udma_tx and udma_tx_arbiter state machines to hang.
So, the Workaround is checking TDAR status four time, if TDAR cleared by
hardware and then write TDAR, otherwise don't set TDAR.
Fixes: 53bb20d1faba ("net: fec: add variable reg_desc_active to speed things up")
Signed-off-by: Mattias Barthel <mattias.barthel@atlascopco.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/20250429090826.3101258-1-mattiasbarthel@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'lib/mpi/mpi-pow.c')
0 files changed, 0 insertions, 0 deletions