Am Donnerstag, 17. Juli 2003 01:50 schrieb Nemosoft Unv.:
> 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.
For 2.4 this is correct.
> > Shouldn't there be a goto to this piece of code ?
>
> Goto??!?! Argh! Yuck! Blegh! :-)
Proper use of 'goto' shows the true master of the art.
> > 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.
I sent one of the people reporting a hang such a patch.
We'll see.
Regards
Oliver
-------------------------------------------------------
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