forked from Minki/linux
mac80211: Fix ieee80211_sta_conn_mon_timer with hw connection monitoring
When IEEE80211_HW_CONNECTION_MONITOR is configured by the driver, starting of ieee80211_sta_conn_mon_timer should be prevented, as it is then not needed. This is currently partially the case. As it seems, when a probe-response is received from the AP the timer is still restarted, thus restarting the host based connection keep-alive mechanism. These probe-responses happen at least when scanning while associated. Fix this by preventing starting of the ieee80211_sta_conn_mon_timer in the ieee80211_rx_mgmt_probe_resp function. Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
58b5190e74
commit
7bdfcaaff5
@ -1330,12 +1330,17 @@ static void ieee80211_rx_mgmt_probe_resp(struct ieee80211_sub_if_data *sdata,
|
|||||||
mutex_lock(&sdata->local->iflist_mtx);
|
mutex_lock(&sdata->local->iflist_mtx);
|
||||||
ieee80211_recalc_ps(sdata->local, -1);
|
ieee80211_recalc_ps(sdata->local, -1);
|
||||||
mutex_unlock(&sdata->local->iflist_mtx);
|
mutex_unlock(&sdata->local->iflist_mtx);
|
||||||
|
|
||||||
|
if (sdata->local->hw.flags & IEEE80211_HW_CONNECTION_MONITOR)
|
||||||
|
return;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We've received a probe response, but are not sure whether
|
* We've received a probe response, but are not sure whether
|
||||||
* we have or will be receiving any beacons or data, so let's
|
* we have or will be receiving any beacons or data, so let's
|
||||||
* schedule the timers again, just in case.
|
* schedule the timers again, just in case.
|
||||||
*/
|
*/
|
||||||
mod_beacon_timer(sdata);
|
mod_beacon_timer(sdata);
|
||||||
|
|
||||||
mod_timer(&ifmgd->conn_mon_timer,
|
mod_timer(&ifmgd->conn_mon_timer,
|
||||||
round_jiffies_up(jiffies +
|
round_jiffies_up(jiffies +
|
||||||
IEEE80211_CONNECTION_IDLE_TIME));
|
IEEE80211_CONNECTION_IDLE_TIME));
|
||||||
|
Loading…
Reference in New Issue
Block a user