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.
- 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);
_______________________________________________________________
Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel