From 4ad1957eee084166a7dcdd265570c9fa2ffb1acd Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sun, 11 Apr 2021 19:42:14 +0200 Subject: mac80211: add client mode connection monitor fix Signed-off-by: Felix Fietkau (cherry-picked from commit dfdb28c24aa60cf057ec45cbc11ab48ba2655f53) --- ...74-mac80211-fix-time-is-after-bug-in-mlme.patch | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 package/kernel/mac80211/patches/subsys/374-mac80211-fix-time-is-after-bug-in-mlme.patch (limited to 'package/kernel/mac80211/patches/subsys') 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 +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 +Fixes: 9abf4e49830d ("mac80211: optimize station connection monitor") +Acked-by: Felix Fietkau +Link: https://lore.kernel.org/r/20210330230749.14097-1-greearb@candelatech.com +Signed-off-by: Johannes Berg +--- + +--- 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; + } -- cgit v1.2.3