wl12xx: handle dummy packet event also in ap mode
authorArik Nemtsov <arik@wizery.com>
Sun, 14 Aug 2011 10:17:18 +0000 (13:17 +0300)
committerLuciano Coelho <coelho@ti.com>
Mon, 22 Aug 2011 09:35:26 +0000 (12:35 +0300)
Allow handling of DUMMY_PACKET_EVENT_ID also in ap mode.

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
drivers/net/wireless/wl12xx/event.c
drivers/net/wireless/wl12xx/tx.c

index 431ceae..0bd7b02 100644 (file)
@@ -291,7 +291,7 @@ static int wl1271_event_process(struct wl1271 *wl, struct event_mailbox *mbox)
                        wl1271_stop_ba_event(wl, mbox->rx_ba_allowed);
        }
 
-       if ((vector & DUMMY_PACKET_EVENT_ID) && !is_ap) {
+       if ((vector & DUMMY_PACKET_EVENT_ID)) {
                wl1271_debug(DEBUG_EVENT, "DUMMY_PACKET_ID_EVENT_ID");
                if (wl->vif)
                        wl1271_tx_dummy_packet(wl);
index ffdaf97..a2dbbad 100644 (file)
@@ -821,10 +821,14 @@ void wl1271_tx_reset_link_queues(struct wl1271 *wl, u8 hlid)
                total[i] = 0;
                while ((skb = skb_dequeue(&wl->links[hlid].tx_queue[i]))) {
                        wl1271_debug(DEBUG_TX, "link freeing skb 0x%p", skb);
-                       info = IEEE80211_SKB_CB(skb);
-                       info->status.rates[0].idx = -1;
-                       info->status.rates[0].count = 0;
-                       ieee80211_tx_status_ni(wl->hw, skb);
+
+                       if (!wl12xx_is_dummy_packet(wl, skb)) {
+                               info = IEEE80211_SKB_CB(skb);
+                               info->status.rates[0].idx = -1;
+                               info->status.rates[0].count = 0;
+                               ieee80211_tx_status_ni(wl->hw, skb);
+                       }
+
                        total[i]++;
                }
        }