>>This one-liner fixes a problem in synchronous messaging
>>with usb_bulk_msg(), usb_control_msg(), and everything
>>that calls usb_control_msg():  you're not allowed to call
>>blocking functions when you're already on a wait queue.
>>
>>A better fix would be to just stick the thread on the
>>wait queue _after_ submitting the URB, but that should
>>involve more testing than I have time for just now.
> 
> 
> Nice patch, it's even inlined which I _love_ but your mailer mangled it
> beyond repair :(
> 
> Want to try it again?

What, you mean Mozilla mangles things?  Sigh.  Here it is
as a regular attachment.

- dave

--- ./drivers/usb-dist/core/message.c   Mon Jun  3 11:11:11 2002
+++ ./drivers/usb/core/message.c        Tue Jun  4 15:11:19 2002
@@ -36,7 +36,7 @@
        add_wait_queue(&awd.wqh, &wait);
 
        urb->context = &awd;
-       status = usb_submit_urb(urb, GFP_KERNEL);
+       status = usb_submit_urb(urb, GFP_ATOMIC);
        if (status) {
                // something went wrong
                usb_free_urb(urb);

Reply via email to