--- kaweth.c.alt        Tue Feb  5 00:34:20 2002
+++ kaweth.c    Tue Feb  5 00:40:54 2002
@@ -447,7 +447,8 @@
 /****************************************************************
  *     kaweth_resubmit_rx_urb
  ****************************************************************/
-static inline void kaweth_resubmit_rx_urb(struct kaweth_device *kaweth)
+static inline void kaweth_resubmit_rx_urb(struct kaweth_device *kaweth,
+                                               int mem_flags)
 {
        int result;
 
@@ -461,7 +462,7 @@
                      kaweth_usb_receive,
                      kaweth);
 
-       if((result = usb_submit_urb(kaweth->rx_urb))) {
+       if((result = usb_submit_urb(kaweth->rx_urb, mem_flags))) {
                kaweth_err("resubmitting rx_urb %d failed", result);
        }
 }
@@ -493,7 +494,7 @@
                           urb->status,
                           count, 
                           (int)pkt_len);
-               kaweth_resubmit_rx_urb(kaweth);
+               kaweth_resubmit_rx_urb(kaweth, GFP_ATOMIC);
                 return;
        }
 
@@ -502,12 +503,12 @@
                        kaweth_err("Packet length too long for USB frame (pkt_len: %x, 
count: %x)",pkt_len, count);
                        kaweth_err("Packet len & 2047: %x", pkt_len & 2047);
                        kaweth_err("Count 2: %x", count2);
-                       kaweth_resubmit_rx_urb(kaweth);
+                       kaweth_resubmit_rx_urb(kaweth, GFP_ATOMIC);
                         return;
                 }
                
                if(!(skb = dev_alloc_skb(pkt_len+2))) {
-                       kaweth_resubmit_rx_urb(kaweth);
+                       kaweth_resubmit_rx_urb(kaweth, GFP_ATOMIC);
                         return;
                }
 
@@ -525,7 +526,7 @@
                kaweth->stats.rx_bytes += pkt_len;
        }
 
-       kaweth_resubmit_rx_urb(kaweth);
+       kaweth_resubmit_rx_urb(kaweth, GFP_ATOMIC);
 }
 
 /****************************************************************
@@ -539,11 +540,11 @@
 
        kaweth_dbg("Opening network device.");
 
-       kaweth_resubmit_rx_urb(kaweth);
+       MOD_INC_USE_COUNT;
 
-       netif_start_queue(net);
+       kaweth_resubmit_rx_urb(kaweth, GFP_KERNEL);
 
-       MOD_INC_USE_COUNT;
+       netif_start_queue(net);
 
        kaweth_async_set_rx_mode(kaweth);
        return 0;
@@ -625,7 +626,7 @@
                      kaweth_usb_transmit_complete,
                      kaweth);
 
-       if((res = usb_submit_urb(kaweth->tx_urb)))
+       if((res = usb_submit_urb(kaweth->tx_urb, GFP_ATOMIC)))
        {
                kaweth_warn("kaweth failed tx_urb %d", res);
                kaweth->stats.tx_errors++;
@@ -978,7 +979,7 @@
         set_current_state(TASK_INTERRUPTIBLE);
         add_wait_queue(&awd.wqh, &wait);
         urb->context = &awd;
-        status = usb_submit_urb(urb);
+        status = usb_submit_urb(urb, GFP_KERNEL);
         if (status) {
                 // something went wrong
                 usb_free_urb(urb);

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

Reply via email to