RE: [PATCH] usb: wusbcore: fix short transfers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux