Hi,
On Sun, Jul 14, 2024 at 05:32:39PM +0200, MichaĆ Pecio wrote:
This looks like bug 219039, please see if my suggested solution works.
The upstream commit is correct, because the call to inc_deq() has been moved outside handle_tx_event() so there is no longer this critical difference between doing 'goto cleanup' and 'return 0'. The intended change of this commit also makes sense to me.
This refactor is already present in v6.9 so I don't think the commit will have any effect besides fixing the isochronous bug which it is meant to fix.
But it is not present in v6.6 and v6.1, so they break/crash/hang/etc. Symptoms may vary, but I believe the root cause is the same because the code is visibly wrong.
I would like to use this opportunity to point out that the xhci driver is currenty undergoing (much needed IMO) cleanups and refactors and this is not the first time when a naive, verbatim backport is attempted of a patch which works fine on upstream, but causes problems on earlier kernels. These things need special scrutiny, beyond just "CC:stable".
For tracking I guess this should go as well to the regressions list?
#regzbot introduced: 948554f1bb16e15b90006c109c3a558c66d4c4ac #regzbot title: freezes on plugging USB connector due to 948554f1bb16 ("usb: xhci: prevent potential failure in handle_tx_event() for Transfer events without TRB") #regzbot monitor: https://bugzilla.kernel.org/show_bug.cgi?id=219039
Thorsten I hope I got the most bits correctly, how would one inform regzbot about the regresssion for 6.1.98 and 6.6.39 but not happening in the upper versions?
Regards, Salvatore