]> git.baikalelectronics.ru Git - kernel.git/commit
Revert "xhci: don't finish a TD if we get a short-transfer event mid TD"
authorMathias Nyman <mathias.nyman@linux.intel.com>
Tue, 26 Jan 2016 15:50:04 +0000 (17:50 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Feb 2016 21:55:42 +0000 (13:55 -0800)
commitd09823852aca19ea4ce02ac13103c507b0d5189d
tree5d84bde672bd70da59324a88a509c664ba37cb05
parent87769ffbad1a15e849b568d4bb3ecd9e274ee8b0
Revert "xhci: don't finish a TD if we get a short-transfer event mid TD"

This reverts commit 0ad475055c2f ("xhci: don't finish a TD if we get a
short transfer event mid TD")

Turns out that most host controllers do not follow the xHCI specs and never
send the second event for the last TRB in the TD if there was a short event
mid-TD.

Returning the URB directly after the first short-transfer event is far
better than never returning the URB. (class drivers usually timeout
after 30sec). For the hosts that do send the second event we will go
back to treating it as misplaced event and print an error message for it.

The origial patch was sent to stable kernels and needs to be reverted from
there as well

Cc: stable@vger.kernel.org
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/xhci-ring.c