wl1271: Fix tx queue flushing
authorJuuso Oikarinen <juuso.oikarinen@nokia.com>
Thu, 1 Apr 2010 08:38:24 +0000 (11:38 +0300)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 6 Apr 2010 20:55:14 +0000 (16:55 -0400)
This patch modifies tx-queue flushing to correspond with tx-path - i.e.
also frames for which no ack was requested are forwarded to the mac80211
for disposal.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/wl12xx/wl1271_tx.c

index 0b8cdb4..62db795 100644 (file)
@@ -416,35 +416,19 @@ void wl1271_tx_flush(struct wl1271 *wl)
 {
        int i;
        struct sk_buff *skb;
-       struct ieee80211_tx_info *info;
 
        /* TX failure */
 /*     control->flags = 0; FIXME */
 
        while ((skb = skb_dequeue(&wl->tx_queue))) {
-               info = IEEE80211_SKB_CB(skb);
-
                wl1271_debug(DEBUG_TX, "flushing skb 0x%p", skb);
-
-               if (!(info->flags & IEEE80211_TX_CTL_REQ_TX_STATUS)) {
-                       kfree_skb(skb);
-                       continue;
-               }
-
                ieee80211_tx_status(wl->hw, skb);
        }
 
        for (i = 0; i < ACX_TX_DESCRIPTORS; i++)
                if (wl->tx_frames[i] != NULL) {
                        skb = wl->tx_frames[i];
-                       info = IEEE80211_SKB_CB(skb);
-
-                       if (!(info->flags & IEEE80211_TX_CTL_REQ_TX_STATUS)) {
-                               kfree_skb(skb);
-                               continue;
-                       }
-
-                       ieee80211_tx_status(wl->hw, skb);
                        wl->tx_frames[i] = NULL;
+                       ieee80211_tx_status(wl->hw, skb);
                }
 }