]> www.infradead.org Git - users/jedix/linux-maple.git/commit
xhci: Set correct transferred length for cancelled isoc transfers
authorMathias Nyman <mathias.nyman@linux.intel.com>
Wed, 26 Jun 2024 12:48:17 +0000 (15:48 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jun 2024 14:08:05 +0000 (16:08 +0200)
commit7b59c0362af8a79d3fb11c48a1d6e4cfc9570c0e
treef3c162dccef400870ff8034c7231eefa6df0aa7b
parentfef267a6c29bb2377e344a060c151041bd4de677
xhci: Set correct transferred length for cancelled isoc transfers

The transferred length is incorrectly zeroed for cancelled isoc
transfer TDs when the transfer ring stops on a cancelled TD with
a 'Stop - Length Invalid' completion code.

Length was always set to zero in these cases even if it should be
set to the sum of the TRB transfer block lengths up to
the TRB the ring stopped on, _excluding_ the one stopped on.

No issues reported due to this isoc case. Found while inspecting
related case in bulk transfer 'Stop - Length Invalid' handling.

Change this so that 'Stop - Length Invalid' transfer completion
cases always sum up TRB lengths instead of report a zero length.

Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20240626124835.1023046-4-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/xhci-ring.c