[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <d77b4361-2ff4-4a3d-9506-354c054ae3ca@lunn.ch>
Date: Tue, 29 Apr 2025 13:54:40 +0200
From: Andrew Lunn <andrew@...n.ch>
To: mattiasbarthel@...il.com
Cc: wei.fang@....com, shenwei.wang@....com, xiaoning.wang@....com,
andrew+netdev@...n.ch, davem@...emloft.net, edumazet@...gle.com,
kuba@...nel.org, pabeni@...hat.com, troy.kisky@...ndarydevices.com,
imx@...ts.linux.dev, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org,
Mattias Barthel <mattias.barthel@...ascopco.com>
Subject: Re: [PATCH net v1] net: fec: ERR007885 Workaround for conventional TX
On Tue, Apr 29, 2025 at 11:08:26AM +0200, mattiasbarthel@...il.com wrote:
> From: Mattias Barthel <mattias.barthel@...ascopco.com>
>
> 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@...ascopco.com>
Reviewed-by: Andrew Lunn <andrew@...n.ch>
Andrew
Powered by blists - more mailing lists