Hello,

On Tuesday 15 July 2003 10:43, Oliver Neukum wrote:
> > 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?

Well, it's not resubmitted, period. Even at the end of pwc_isoc_handler() no 
resubmission is done, at least on 2.4.20. And that seems to work okay. 

> Shouldn't there be a goto to this piece of code ?

Goto??!?! Argh! Yuck! Blegh! :-)

>
>       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);

This is for 2.5, right... So that means the URB submission system got 
changed back again (Duh...) [I haven't really kept up with all the changes 
in 2.5, only checking if the changes made by others don't break my code. 
But yes, a resubmission would probably help in this case.

 - Nemosoft




-------------------------------------------------------
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to