On Tue, Apr 11, 2000 at 11:28:03PM +0000, Johan Verrept wrote:
<...>
> ok. thanks for the answer, it's bulk btw.
> Another question related to this, when i unplug my device, what happens
> to the queued urb's ?
They are killed, for usb-uhci it's uhci_free_dev which calls this.
uhci_free_dev itself is called from the hub thread.
> is the completion handler called ?
No, except the urb->transfer_flags have USB_ASYNC_UNLINK set.
> If it isn't, can I still call usb_unlink_urb() on it ?
It should cause no harm, since unlink_urb should only do something if
urb->status is -EINPROGRESS. This is changed to -ENOENT during the
disconnect.
> If not, then what ?
>
> does the completion handler have to return quickly ?
Well, it should, because it is called in interrupt context.
> ...and one more ;-)
>
> i presume the following allows me to queue mulitple urbs for quick data
> transport ?
>
> urb->transfer_flags |= USB_QUEUE_BULK;
Yes, it's experimental in usb-uhci and uhci. So it may work, but may also
cause unexpected behavior. In both cases, please inform us...
> does it have any effect on the unlinking stuff ?
usb-uhci: Not for the completion stuff, but it may disturb the data toggle
ordering if you kill an URB in between.
So please unlink all URBs that are on the way.
> > > if it is, any idea's why i get this crash ?
> >
> > Can you show some code?
>
> nothin usefull, but i traced it to a point beyond the usb part
> so it has to be there somewhere...
>
> I got an improvement, i can look at the oops thingie now, I had the hang
> because at the end it is trying to kill the idle task... the kernel
> doesn't like that much ;-)
>
> *grumble* gotta keep lookin'...
Some wild guesses: Invalid dev pointer, freed transfer_buffer, wrong
transfer_length, invalid completion pointer...
BTW: Does this happen with usb-uhci AND uhci?
--
Bye
Georg Acher, [EMAIL PROTECTED]
http://www.in.tum.de/~acher/
"Oh no, not again !" The bowl of petunias
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]