mac80211: add client mode connection monitor fix
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry-picked from commit dfdb28c24a)
			
			
This commit is contained in:
		| @@ -0,0 +1,31 @@ | ||||
| From: Ben Greear <greearb@candelatech.com> | ||||
| Date: Tue, 30 Mar 2021 16:07:49 -0700 | ||||
| Subject: [PATCH] mac80211: fix time-is-after bug in mlme | ||||
|  | ||||
| The incorrect timeout check caused probing to happen when it did | ||||
| not need to happen.  This in turn caused tx performance drop | ||||
| for around 5 seconds in ath10k-ct driver.  Possibly that tx drop | ||||
| is due to a secondary issue, but fixing the probe to not happen | ||||
| when traffic is running fixes the symptom. | ||||
|  | ||||
| Signed-off-by: Ben Greear <greearb@candelatech.com> | ||||
| Fixes: 9abf4e49830d ("mac80211: optimize station connection monitor") | ||||
| Acked-by: Felix Fietkau <nbd@nbd.name> | ||||
| Link: https://lore.kernel.org/r/20210330230749.14097-1-greearb@candelatech.com | ||||
| Signed-off-by: Johannes Berg <johannes.berg@intel.com> | ||||
| --- | ||||
|  | ||||
| --- a/net/mac80211/mlme.c | ||||
| +++ b/net/mac80211/mlme.c | ||||
| @@ -4691,7 +4691,10 @@ static void ieee80211_sta_conn_mon_timer | ||||
|  		timeout = sta->rx_stats.last_rx; | ||||
|  	timeout += IEEE80211_CONNECTION_IDLE_TIME; | ||||
|   | ||||
| -	if (time_is_before_jiffies(timeout)) { | ||||
| +	/* If timeout is after now, then update timer to fire at | ||||
| +	 * the later date, but do not actually probe at this time. | ||||
| +	 */ | ||||
| +	if (time_is_after_jiffies(timeout)) { | ||||
|  		mod_timer(&ifmgd->conn_mon_timer, round_jiffies_up(timeout)); | ||||
|  		return; | ||||
|  	} | ||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau