On Wed, 5 Feb 2003 [EMAIL PROTECTED] wrote:

> Hello Alan,
> 
>        thank you for your answer. I am using Linux 2.4.19 with the uhci
> and/or the new ehci module (on a single CPU machine). To submit an URB
> continuosly I used the field urb->next this way: urb->next = urb.

I'm not an expert, but doing that looks suspicious to me.  At best, it 
means your completion routine would not have time to reinitialize the URB 
before the core started processing it again.

> However, under certain conditions, i need to remove any other submitions
> of the same URB from within its completition handler, so I used
> usb_unlink_urb(urb) (ASYNC should not be illegal), but it immediatly
> crashes with no oops by the kernel. And yes, i am sure it is the cause
> of the problem.

You might try using two or more URBs in a round-robin manner.  And when 
you want to unlink an URB, erase its urb->next field before calling 
usb_unlink_urb().

Hope this helps.

Alan Stern



-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to