12345678910111213141516171819202122232425262728293031 |
- From: Ben Greear <[email protected]>
- 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 <[email protected]>
- Fixes: 9abf4e49830d ("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]>
- ---
- --- 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;
- }
|