Skip to content

Commit 7d73cd9

Browse files
greearbjmberg-intel
authored andcommitted
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 <[email protected]> Fixes: 9abf4e4 ("mac80211: optimize station connection monitor") Acked-by: Felix Fietkau <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Johannes Berg <[email protected]>
1 parent 1153a74 commit 7d73cd9

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

net/mac80211/mlme.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4707,7 +4707,10 @@ static void ieee80211_sta_conn_mon_timer(struct timer_list *t)
47074707
timeout = sta->rx_stats.last_rx;
47084708
timeout += IEEE80211_CONNECTION_IDLE_TIME;
47094709

4710-
if (time_is_before_jiffies(timeout)) {
4710+
/* If timeout is after now, then update timer to fire at
4711+
* the later date, but do not actually probe at this time.
4712+
*/
4713+
if (time_is_after_jiffies(timeout)) {
47114714
mod_timer(&ifmgd->conn_mon_timer, round_jiffies_up(timeout));
47124715
return;
47134716
}

0 commit comments

Comments
 (0)