mac80211: add client mode connection monitor fix
Signed-off-by: Felix Fietkau <nbd@nbd.name>
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