On Tue, 10 Dec 2013, David Laight wrote: > > From: Thomas Pugliese > > Sent: 09 December 2013 19:11 > > To: linux-usb@xxxxxxxxxxxxxxx > > Cc: gregkh@xxxxxxxxxxxxxxxxxxx; Thomas Pugliese > > Subject: [PATCH] usb: wusbcore: fix short transfers > > > > If a URB is broken up into multiple transfer segments and a short > > transfer occurs in any segment other than the last, the URB will > > currently get stuck in the driver forever. This patch adds a check for > > a short transfer and cleans up any pending segments so the URB can > > complete properly. > > I thought that generic code ensured that this never happens. > I thought that only xhci supports arbitrary fragmentation. > > David > > > > Hi David, WUSB actually does support arbitrary fragmentation but that is not the type of fragmentation that is addressed with this fix. The HWA can break up large URBs into smaller transfer segments that are not visible to the USB core. These segments are similar to TRBs in xHCI. If a large read request was broken up into multiple transfer segments and the read completed early due to a short transfer, the tracking data for the remaining segments would not be cleaned up and the URB would stay in the driver forever. This patch solves that problem. Tom -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html