]> err.no Git - linux-2.6/blobdiff - drivers/net/wireless/rt2x00/rt2x00usb.c
rt2x00: Always call ieee80211_stop_queue() when return NETDEV_TX_BUSY
[linux-2.6] / drivers / net / wireless / rt2x00 / rt2x00usb.c
index 9778fae313ab17d22080354a2bfcd4d1be777dd5..fa0cdd8b3e1a5e4d7de5cf1dc0cdb3172aeb132e 100644 (file)
@@ -179,17 +179,14 @@ int rt2x00usb_write_tx_data(struct rt2x00_dev *rt2x00dev,
        struct skb_desc *desc;
        u32 length;
 
-       if (rt2x00_ring_full(ring)) {
-               ieee80211_stop_queue(rt2x00dev->hw, control->queue);
+       if (rt2x00_ring_full(ring))
                return -EINVAL;
-       }
 
        if (test_bit(ENTRY_OWNER_NIC, &entry->flags)) {
                ERROR(rt2x00dev,
                      "Arrived at non-free entry in the non-full queue %d.\n"
                      "Please file bug report to %s.\n",
                      control->queue, DRV_PROJECT);
-               ieee80211_stop_queue(rt2x00dev->hw, control->queue);
                return -EINVAL;
        }
 
@@ -229,9 +226,6 @@ int rt2x00usb_write_tx_data(struct rt2x00_dev *rt2x00dev,
 
        rt2x00_ring_index_inc(ring);
 
-       if (rt2x00_ring_full(ring))
-               ieee80211_stop_queue(rt2x00dev->hw, control->queue);
-
        return 0;
 }
 EXPORT_SYMBOL_GPL(rt2x00usb_write_tx_data);