diff options
author | Felix Fietkau <nbd@nbd.name> | 2021-04-11 19:42:14 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2021-04-11 19:44:07 +0200 |
commit | dfdb28c24aa60cf057ec45cbc11ab48ba2655f53 (patch) | |
tree | 258126d4c9ca9b63e1d049c564f0de82fb5b0287 /package/kernel/mac80211 | |
parent | 7d8e14e44f76e18d1696565569ec50ccdce963b3 (diff) | |
download | upstream-dfdb28c24aa60cf057ec45cbc11ab48ba2655f53.tar.gz upstream-dfdb28c24aa60cf057ec45cbc11ab48ba2655f53.tar.bz2 upstream-dfdb28c24aa60cf057ec45cbc11ab48ba2655f53.zip |
mac80211: add client mode connection monitor fix
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'package/kernel/mac80211')
-rw-r--r-- | package/kernel/mac80211/patches/subsys/374-mac80211-fix-time-is-after-bug-in-mlme.patch | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/subsys/374-mac80211-fix-time-is-after-bug-in-mlme.patch b/package/kernel/mac80211/patches/subsys/374-mac80211-fix-time-is-after-bug-in-mlme.patch new file mode 100644 index 0000000000..0573aece64 --- /dev/null +++ b/package/kernel/mac80211/patches/subsys/374-mac80211-fix-time-is-after-bug-in-mlme.patch @@ -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; + } |