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

2013-12-10 Thread David Laight
> From: Thomas Pugliese
> Sent: 09 December 2013 19:11
> To: linux-usb@vger.kernel.org
> Cc: gre...@linuxfoundation.org; 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



--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

2013-12-10 Thread Thomas Pugliese


On Tue, 10 Dec 2013, David Laight wrote:

> > From: Thomas Pugliese
> > Sent: 09 December 2013 19:11
> > To: linux-usb@vger.kernel.org
> > Cc: gre...@linuxfoundation.org; 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html