Commit 7d73cd94 authored by Ben Greear's avatar Ben Greear Committed by Johannes Berg
Browse files

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: default avatarBen Greear <greearb@candelatech.com>
Fixes: 9abf4e49 ("mac80211: optimize station connection monitor")
Acked-by: default avatarFelix Fietkau <nbd@nbd.name>
Link: https://lore.kernel.org/r/20210330230749.14097-1-greearb@candelatech.com


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 1153a747
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -4707,7 +4707,10 @@ static void ieee80211_sta_conn_mon_timer(struct timer_list *t)
		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;
	}