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]

Reply via email to