I think it's pratically impossible to remove/cancel/erase/unlink an URB submition from 
its completition handler so that the handler itself will _never_ be called. I tried 
everything but the system crashes with no kernel messages (!) and the usb_unlink_urb 
is the problem. I tried putting urb->next = NULL before calling the unlink function, i 
tried with two and/or more linked urbs as a lot of drivers do, i tried to link every 
submitted urbs, i tried to unlink just some of them ( or just the "next" urbs), i 
tried with every flags ASYNC / SYNC unlinking, i tried everything! but there's no way 
to remove any following submition of the urb inside its handler. Everything works well 
if the unlink function is called externally. The system is Linux 2.4.19/20 with the 
uhci and/or ehci module. The code is projected so that  It is impossible to call the 
unlink function externally, so i need to remove it inside the handler if a condition 
occours. Obviously there are not problem in the handler code itself, given that it 
doesn't do particular things and what it does is fast.

Please help, IS THERE A WAY TO UNLINK/REMOVE/CANCEL/ERASE every damn active submition 
of an URB from within the completition handler, so that it will be ___never___ called?

Oh, ok, the system crashes ..so the transfer is stopped automatically...yeah, but it 
is not exactly what i want :-)





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