> 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

Reply via email to