Subject: Re: [PATCH] net: macb: Restart tx only if queue pointer is lagging

From: Jakub Kicinski <[email-masked]>
Date: Thu, 31 Mar 2022 11:31:35 -0700

On Fri, 25 Mar 2022 08:50:12 +0200 Tomas Melin wrote:
> commit 5ea9c08a8692 ("net: macb: restart tx after tx used bit read")

Ooh, I just noticed the commit ID here is from the stable tree.
Please change it to the original commit ID, so 4298388574da
and repost once the discussion settles.

> added support for restarting transmission. Restarting tx does not work
> in case controller asserts TXUBR interrupt and TQBP is already at the end
> of the tx queue. In that situation, restarting tx will immediately cause
> assertion of another TXUBR interrupt. The driver will end up in an infinite
> interrupt loop which it cannot break out of.
> 
> For cases where TQBP is at the end of the tx queue, instead
> only clear TXUBR interrupt. As more data gets pushed to the queue,
> transmission will resume.
> 
> This issue was observed on a Xilinx Zynq based board. During stress test of
> the network interface, driver would get stuck on interrupt loop
> within seconds or minutes causing CPU to stall.