> Particularly after taking a quick glance at the code
> and not seeing anything that much cared about nonzero
> fault codes when the urbs are returned.
Hi nemosoft,
looking at the 2.5 code error handling seems fishy:
if (urb->status != -EINPROGRESS && urb->status != 0) {
char *errmsg;
errmsg = "Unknown";
switch(urb->status) {
case -ENOSR: errmsg = "Buffer error (overrun)";
break;
case -EPIPE: errmsg = "Stalled (device not
responding)"; break;
case -EOVERFLOW: errmsg = "Babble (bad cable?)"; break;
case -EPROTO: errmsg = "Bit-stuff error (bad
cable?)"; break;
case -EILSEQ: errmsg = "CRC/Timeout"; break;
case -ETIMEDOUT: errmsg = "NAK (device does not
respond)"; break;
}
Trace(TRACE_FLOW, "pwc_isoc_handler() called with status %d [%s].\n",
urb->status, errmsg);
return;
}
Judging by this code any such error will mean that the URB is not resubmitted.
Can this be right?
Shouldn't there be a goto to this piece of code ?
urb->dev = pdev->udev;
i = usb_submit_urb(urb, GFP_ATOMIC);
if (i != 0)
Err("Error (%d) re-submitting urb in pwc_isoc_handler.\n", i);
Regards
Oliver
-------------------------------------------------------
This SF.Net email sponsored by: Parasoft
Error proof Web apps, automate testing & more.
Download & eval WebKing and get a free book.
www.parasoft.com/bulletproofapps1
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel