mac80211: flush to get the tx status of nullfunc frame immediately
authorRajkumar Manoharan <rmanohar@qca.qualcomm.com>
Thu, 15 Mar 2012 00:45:26 +0000 (06:15 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 9 Apr 2012 20:05:54 +0000 (16:05 -0400)
Sometimes the probe frame (nullfunc) is stuck at the hw queue. so that
the mac80211 terminates the connection as it wont see the tx status.
Instead of waiting for long period for ack status, lets call flush
to get nullfunc status immediately. It also helps to send the nullfunc
till max tries reached.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/mlme.c

index 48d0ee3f15dc17d3fb9a6dc5e75847f1831527ea..f733aeb50e8567417d55e11709b37e00d2c2a9f2 100644 (file)
@@ -1575,6 +1575,8 @@ static void ieee80211_mgd_probe_ap_send(struct ieee80211_sub_if_data *sdata)
        ifmgd->probe_send_count++;
        ifmgd->probe_timeout = jiffies + msecs_to_jiffies(probe_wait_ms);
        run_again(ifmgd, ifmgd->probe_timeout);
+       if (sdata->local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS)
+               drv_flush(sdata->local, false);
 }
 
 static void ieee80211_mgd_probe_ap(struct ieee80211_sub_if_data *sdata,