mac80211: fix minstrel sample time check
authorFelix Fietkau <nbd@nbd.name>
Thu, 17 Jun 2021 10:40:15 +0000 (12:40 +0200)
committerFelix Fietkau <nbd@nbd.name>
Thu, 17 Jun 2021 10:45:08 +0000 (12:45 +0200)
We need to skip sampling if the next sample time is after jiffies, not before.
This patch fixes an issue where in some cases only very little sampling (or none
at all) is performed, leading to really bad data rates

Signed-off-by: Felix Fietkau <nbd@nbd.name>
package/kernel/mac80211/patches/subsys/377-mac80211-minstrel_ht-fix-sample-time-check.patch [new file with mode: 0644]

diff --git a/package/kernel/mac80211/patches/subsys/377-mac80211-minstrel_ht-fix-sample-time-check.patch b/package/kernel/mac80211/patches/subsys/377-mac80211-minstrel_ht-fix-sample-time-check.patch
new file mode 100644 (file)
index 0000000..787254b
--- /dev/null
@@ -0,0 +1,23 @@
+From: Felix Fietkau <nbd@nbd.name>
+Date: Thu, 17 Jun 2021 12:05:54 +0200
+Subject: [PATCH] mac80211: minstrel_ht: fix sample time check
+
+We need to skip sampling if the next sample time is after jiffies, not before.
+This patch fixes an issue where in some cases only very little sampling (or none
+at all) is performed, leading to really bad data rates
+
+Fixes: 80d55154b2f8 ("mac80211: minstrel_ht: significantly redesign the rate probing strategy")
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+
+--- a/net/mac80211/rc80211_minstrel_ht.c
++++ b/net/mac80211/rc80211_minstrel_ht.c
+@@ -1498,7 +1498,7 @@ minstrel_ht_get_rate(void *priv, struct
+           (info->control.flags & IEEE80211_TX_CTRL_PORT_CTRL_PROTO))
+               return;
+-      if (time_is_before_jiffies(mi->sample_time))
++      if (time_is_after_jiffies(mi->sample_time))
+               return;
+       mi->sample_time = jiffies + MINSTREL_SAMPLE_INTERVAL;