aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/mlme.c
diff options
context:
space:
mode:
authorWojciech Dubowik <Wojciech.Dubowik@neratec.com>2013-02-14 08:08:37 -0500
committerJohannes Berg <johannes.berg@intel.com>2013-02-15 03:41:09 -0500
commitcab1c7fd8024ce896119535b5b067224b0b699aa (patch)
treeb8441c37a85b4cc6e8fbfa1fa51fd44cd7fdf67a /net/mac80211/mlme.c
parent39886b618aba3c39e650c191d601e26ec581ce0f (diff)
mac80211: fix ieee80211_sta_tx_notify for nullfunc
Function ieee80211_sta_reset_conn_monitor has been resetting probe_send_count too early and nullfunc check was never called after succesfull ack. Reported-by: Magnus Cederlöf <mcider@gmail.com> Tested-by: Magnus Cederlöf <mcider@gmail.com> Signed-off-by: Wojciech Dubowik <Wojciech.Dubowik@neratec.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r--net/mac80211/mlme.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 7d4cde7af98e..c156573ea3d0 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1637,17 +1637,18 @@ void ieee80211_sta_tx_notify(struct ieee80211_sub_if_data *sdata,
1637 if (!ieee80211_is_data(hdr->frame_control)) 1637 if (!ieee80211_is_data(hdr->frame_control))
1638 return; 1638 return;
1639 1639
1640 if (ack)
1641 ieee80211_sta_reset_conn_monitor(sdata);
1642
1643 if (ieee80211_is_nullfunc(hdr->frame_control) && 1640 if (ieee80211_is_nullfunc(hdr->frame_control) &&
1644 sdata->u.mgd.probe_send_count > 0) { 1641 sdata->u.mgd.probe_send_count > 0) {
1645 if (ack) 1642 if (ack)
1646 sdata->u.mgd.probe_send_count = 0; 1643 ieee80211_sta_reset_conn_monitor(sdata);
1647 else 1644 else
1648 sdata->u.mgd.nullfunc_failed = true; 1645 sdata->u.mgd.nullfunc_failed = true;
1649 ieee80211_queue_work(&sdata->local->hw, &sdata->work); 1646 ieee80211_queue_work(&sdata->local->hw, &sdata->work);
1647 return;
1650 } 1648 }
1649
1650 if (ack)
1651 ieee80211_sta_reset_conn_monitor(sdata);
1651} 1652}
1652 1653
1653static void ieee80211_mgd_probe_ap_send(struct ieee80211_sub_if_data *sdata) 1654static void ieee80211_mgd_probe_ap_send(struct ieee80211_sub_if_data *sdata)