diff options
author | Felix Fietkau <nbd@nbd.name> | 2020-09-21 17:56:04 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2020-09-21 17:56:31 +0200 |
commit | 1c6d45644a54e50b6445bbc63eff1ae34b2f1e2e (patch) | |
tree | d5754acb08b78d48ee135683d15382c14af4b1e3 | |
parent | 90853439a162d7c5389f6a68028b4390c349c04d (diff) | |
download | upstream-1c6d45644a54e50b6445bbc63eff1ae34b2f1e2e.tar.gz upstream-1c6d45644a54e50b6445bbc63eff1ae34b2f1e2e.tar.bz2 upstream-1c6d45644a54e50b6445bbc63eff1ae34b2f1e2e.zip |
mac80211: fix regression in station connection monitor optimization
When the nulldata frame was acked, the probe send count needs to be reset,
otherwise it will keep increasing until the connection is considered dead,
even though it fine.
Reported-by: Georgi Valkov <gvalkov@abv.bg>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r-- | package/kernel/mac80211/patches/subsys/332-mac80211-fix-regression-in-sta-connection-monitor.patch | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/subsys/332-mac80211-fix-regression-in-sta-connection-monitor.patch b/package/kernel/mac80211/patches/subsys/332-mac80211-fix-regression-in-sta-connection-monitor.patch new file mode 100644 index 0000000000..787883e217 --- /dev/null +++ b/package/kernel/mac80211/patches/subsys/332-mac80211-fix-regression-in-sta-connection-monitor.patch @@ -0,0 +1,26 @@ +From: Felix Fietkau <nbd@nbd.name> +Date: Mon, 21 Sep 2020 17:43:06 +0200 +Subject: [PATCH] mac80211: fix regression in sta connection monitor + +When the nulldata frame was acked, the probe send count needs to be reset, +otherwise it will keep increasing until the connection is considered dead, +even though it fine. + +Fixes: 9abf4e49830d ("mac80211: optimize station connection monitor") +Reported-by: Georgi Valkov <gvalkov@abv.bg> +Signed-off-by: Felix Fietkau <nbd@nbd.name> +--- + +--- a/net/mac80211/mlme.c ++++ b/net/mac80211/mlme.c +@@ -2508,7 +2508,9 @@ void ieee80211_sta_tx_notify(struct ieee + !sdata->u.mgd.probe_send_count) + return; + +- if (!ack) ++ if (ack) ++ sdata->u.mgd.probe_send_count = 0; ++ else + sdata->u.mgd.nullfunc_failed = true; + ieee80211_queue_work(&sdata->local->hw, &sdata->work); + } |