xhci: Set URB actual length for stopped control transfers
authorMathias Nyman <mathias.nyman@linux.intel.com>
Tue, 28 Mar 2017 12:55:29 +0000 (15:55 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Mar 2017 10:13:49 +0000 (12:13 +0200)
commit0ab2881a406b9fd46224a3e8253bbc0141b4f844
tree9d76cab2f9b5e06fc230ec5679f2c39590818417
parentb07c12517f2aed0add8ce18146bb426b14099392
xhci: Set URB actual length for stopped control transfers

A control transfer that stopped at the status stage incorrectly
warned about a "unexpected TRB Type 4", and did not set the
transferred actual_length for the URB.

The URB actual_length for control transfers should contain the
bytes transferred in the data stage.

Bytes of a partially sent setup stage and missing bytes from
status stage should be left out.

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