[PATCH] isp116x-hcd: fix handling of short transfers
authorOlav Kongas <ok@artecdesign.ee>
Mon, 17 Oct 2005 21:30:43 +0000 (14:30 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 17 Oct 2005 21:45:49 +0000 (14:45 -0700)
commite9b765decfb49ddc105d303d491e1bee9769436f
tree16fdd136b112a86c4313436e83a51549346db40c
parent2cc78eb52bc1ae89f0a4fa5a00eb998dffde4a9f
[PATCH] isp116x-hcd: fix handling of short transfers

Increased use of scatter-gather by usb-storage driver after 2.6.13 has
exposed a buggy codepath in isp116x-hcd, which was probably never
visited before: bug happened only for those urbs, for which
URB_SHORT_NOT_OK was set AND short transfer occurred.

The fix attached was tested in 2 ways: (a) it fixed failing
initialization of a flash drive with an embedded hub; (b) the fix was
tested with 'usbtest' against a modified g_zero driver (on top of
net2280), which generated short bulk IN transfers of various lengths
including multiples and non-multiples of max_packet_length.

Signed-off-by: Olav Kongas <ok@artecdesign.ee>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/usb/host/isp116x-hcd.c