USB: isp1362-hcd.c: usb message always saved in case of underrun
The usb message must be saved also in case the USB endpoint is not a control endpoint (i.e., "endpoint 0"), otherwise in some circumstances we don't have a payload in case of error. The patch has been created by tracing with usbmon the different error messages generated by this driver with respect to the ehci-hcd driver. Signed-off-by: Bruno Morelli <bruno@evidence.eu.com> Signed-off-by: Claudio Scordino <claudio@evidence.eu.com> Tested-by: Bruno Morelli <bruno@evidence.eu.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
872c495dd0
commit
4840ae17ba
|
@ -543,12 +543,12 @@ static void postproc_ep(struct isp1362_hcd *isp1362_hcd, struct isp1362_ep *ep)
|
||||||
usb_pipein(urb->pipe) ? "IN" : "OUT", ep->nextpid,
|
usb_pipein(urb->pipe) ? "IN" : "OUT", ep->nextpid,
|
||||||
short_ok ? "" : "not_",
|
short_ok ? "" : "not_",
|
||||||
PTD_GET_COUNT(ptd), ep->maxpacket, len);
|
PTD_GET_COUNT(ptd), ep->maxpacket, len);
|
||||||
if (usb_pipecontrol(urb->pipe)) {
|
|
||||||
ep->nextpid = USB_PID_ACK;
|
|
||||||
/* save the data underrun error code for later and
|
/* save the data underrun error code for later and
|
||||||
* proceed with the status stage
|
* proceed with the status stage
|
||||||
*/
|
*/
|
||||||
urb->actual_length += PTD_GET_COUNT(ptd);
|
urb->actual_length += PTD_GET_COUNT(ptd);
|
||||||
|
if (usb_pipecontrol(urb->pipe)) {
|
||||||
|
ep->nextpid = USB_PID_ACK;
|
||||||
BUG_ON(urb->actual_length > urb->transfer_buffer_length);
|
BUG_ON(urb->actual_length > urb->transfer_buffer_length);
|
||||||
|
|
||||||
if (urb->status == -EINPROGRESS)
|
if (urb->status == -EINPROGRESS)
|
||||||
|
|
Loading…
Reference in New Issue