diff options
author | Felix Fietkau <nbd@nbd.name> | 2019-08-24 12:41:19 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2019-08-24 12:47:00 +0200 |
commit | f0992d7a309fc1c44d029494fc2c87b26884577f (patch) | |
tree | d6574eb71598d9e5df8616df4eddc68710bb798f | |
parent | 921675a2d148330a7ec44f10ea4d583b8d7b5a44 (diff) | |
download | upstream-f0992d7a309fc1c44d029494fc2c87b26884577f.tar.gz upstream-f0992d7a309fc1c44d029494fc2c87b26884577f.tar.bz2 upstream-f0992d7a309fc1c44d029494fc2c87b26884577f.zip |
mac80211: fix a regression in the minstrel_ht improvement patches
Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r-- | package/kernel/mac80211/patches/subsys/315-mac80211-minstrel_ht-fix-infinite-loop-because-suppo.patch | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/subsys/315-mac80211-minstrel_ht-fix-infinite-loop-because-suppo.patch b/package/kernel/mac80211/patches/subsys/315-mac80211-minstrel_ht-fix-infinite-loop-because-suppo.patch new file mode 100644 index 0000000000..eb70d4d5d2 --- /dev/null +++ b/package/kernel/mac80211/patches/subsys/315-mac80211-minstrel_ht-fix-infinite-loop-because-suppo.patch @@ -0,0 +1,25 @@ +From: Colin Ian King <colin.king@canonical.com> +Date: Thu, 22 Aug 2019 13:20:34 +0100 +Subject: [PATCH] mac80211: minstrel_ht: fix infinite loop because supported is + not being shifted + +Currently the for-loop will spin forever if variable supported is +non-zero because supported is never changed. Fix this by adding in +the missing right shift of supported. + +Addresses-Coverity: ("Infinite loop") +Fixes: 48cb39522a9d ("mac80211: minstrel_ht: improve rate probing for devices with static fallback") +Signed-off-by: Colin Ian King <colin.king@canonical.com> +--- + +--- a/net/mac80211/rc80211_minstrel_ht.c ++++ b/net/mac80211/rc80211_minstrel_ht.c +@@ -634,7 +634,7 @@ minstrel_ht_rate_sample_switch(struct mi + u16 supported = mi->supported[g_idx]; + + supported >>= mi->max_tp_rate[0] % MCS_GROUP_RATES; +- for (i = 0; supported; i++) { ++ for (i = 0; supported; supported >>= 1, i++) { + if (!(supported & 1)) + continue; + |