]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
xhci: Mitigate failed set dequeue pointer commands
authorMathias Nyman <mathias.nyman@linux.intel.com>
Wed, 16 Oct 2024 13:59:58 +0000 (16:59 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 22 Oct 2024 13:40:45 +0000 (15:40 +0200)
commitb6ae69ec6002ca7c5f5e2babe9e8fc400a88089a
treef9c0a7687a3c89d835581a2d4305a84f584708ee
parentdca9429c307b7304ad415ccb376ff1ca123348fb
xhci: Mitigate failed set dequeue pointer commands

commit fe49df60cdb7c2975aa743dc295f8786e4b7db10 upstream.

Avoid xHC host from processing a cancelled URB by always turning
cancelled URB TDs into no-op TRBs before queuing a 'Set TR Deq' command.

If the command fails then xHC will start processing the cancelled TD
instead of skipping it once endpoint is restarted, causing issues like
Babble error.

This is not a complete solution as a failed 'Set TR Deq' command does not
guarantee xHC TRB caches are cleared.

Fixes: 4db356924a50 ("xhci: turn cancelled td cleanup to its own function")
Cc: stable@vger.kernel.org
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20241016140000.783905-3-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/xhci-ring.c