Hi,

if you are already on a waitqueue you must use GFP_ATOMIC.

        Regards
                Oliver
--- iforce.c.alt        Tue Feb  5 19:26:13 2002
+++ iforce.c    Tue Feb  5 19:27:28 2002
@@ -204,7 +204,7 @@
                        set_current_state(TASK_INTERRUPTIBLE);
                        add_wait_queue(&iforce->wait, &wait);
 
-                       if (usb_submit_urb(iforce->out)) {
+                       if (usb_submit_urb(iforce->out, GFP_ATOMIC)) {
                                set_current_state(TASK_RUNNING);
                                remove_wait_queue(&iforce->wait, &wait);
                                return;
@@ -289,7 +289,7 @@
                        set_current_state(TASK_INTERRUPTIBLE);
                        add_wait_queue(&iforce->wait, &wait);
 
-                       if (usb_submit_urb(iforce->ctrl)) {
+                       if (usb_submit_urb(iforce->ctrl, GFP_ATOMIC)) {
                                set_current_state(TASK_RUNNING);
                                remove_wait_queue(&iforce->wait, &wait);
                                return -1;
@@ -345,7 +345,7 @@
                        if (iforce->open++)
                                break;
                        iforce->irq->dev = iforce->usbdev;
-                       if (usb_submit_urb(iforce->irq))
+                       if (usb_submit_urb(iforce->irq, GFP_KERNEL))
                                        return -EIO;
                        break;
 #endif

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

Reply via email to