> For this case, I'd argue that a driver shouldn't be allocating a urb
> within an interrupt at all :)

In this case that can be done. But it's not an answer to all such problems.

[..]
> Now the comments about the HCD drivers needing to know about this, and
> their API being changed, I understand.  I'd be glad to accept such a
> patch (I am even willing to fix up all of the drivers in the tree, if
> someone wants to just patch the HCD drivers, and a single device driver
> to test things with.)
>
> And no, I don't mind breaking API compatibility between 2.4 and 2.5 trees
> to fix such a real problem.  After 2.5 is changed, and problems are
> shaken out, we can always backport to 2.4, if necessary.

If you want this shouldn't we make a clean break and change names ?
How about:

struct urb *usb_get_urb(int num_iso, int gfp);
void usb_put_urb(struct urb *urb);

int usb_execute_urb(struct urb *urb, int gfp);

int usb_revoke_urb_sync(struct urb *urb);
int usb_revoke_urb_async(struct urb *urb);
void usb_wait_completion(struct urb *urb);

If the first five are not clear by name, you can forget this proposal.
The last one could be used to wait for a completion handler to
finish, which would simplify coding disconnect a lot.

        Regards
                Oliver

_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to