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