diff options
author | Felix Fietkau <nbd@openwrt.org> | 2010-03-07 18:35:39 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2010-03-07 18:35:39 +0000 |
commit | f8ff2524a18bc83d4d45bc27a6a38444e82338c6 (patch) | |
tree | 8e55af30318a83bd274e92aaf0d3d2bab798adf7 /package | |
parent | c7658c8664a2de8fec2f853734604d0fa8c7849f (diff) | |
download | upstream-f8ff2524a18bc83d4d45bc27a6a38444e82338c6.tar.gz upstream-f8ff2524a18bc83d4d45bc27a6a38444e82338c6.tar.bz2 upstream-f8ff2524a18bc83d4d45bc27a6a38444e82338c6.zip |
mac80211: fix a few more minstrel_ht bugs (thx to Christian Lamparter)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20040 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package')
-rw-r--r-- | package/mac80211/patches/560-minstrel_ht.patch | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/package/mac80211/patches/560-minstrel_ht.patch b/package/mac80211/patches/560-minstrel_ht.patch index 9fa9e05c52..1cb433db12 100644 --- a/package/mac80211/patches/560-minstrel_ht.patch +++ b/package/mac80211/patches/560-minstrel_ht.patch @@ -68,7 +68,7 @@ --- /dev/null +++ b/net/mac80211/rc80211_minstrel_ht.c -@@ -0,0 +1,807 @@ +@@ -0,0 +1,809 @@ +/* + * Copyright (C) 2010 Felix Fietkau <nbd@openwrt.org> + * @@ -479,13 +479,15 @@ + * downgrade to a lower number of streams if necessary. + */ + rate = minstrel_get_ratestats(mi, mi->max_tp_rate); -+ if (MINSTREL_FRAC(rate->success, rate->attempts) < -+ MINSTREL_FRAC(20, 100) && rate->attempts > 30) ++ if (rate->attempts > 30 && ++ MINSTREL_FRAC(rate->success, rate->attempts) < ++ MINSTREL_FRAC(20, 100)) + minstrel_downgrade_rate(mi, &mi->max_tp_rate, true); + + rate2 = minstrel_get_ratestats(mi, mi->max_tp_rate2); -+ if (MINSTREL_FRAC(rate->success, rate->attempts) < -+ MINSTREL_FRAC(20, 100) && rate->attempts > 30) ++ if (rate->attempts > 30 && ++ MINSTREL_FRAC(rate->success, rate->attempts) < ++ MINSTREL_FRAC(20, 100)) + minstrel_downgrade_rate(mi, &mi->max_tp_rate2, false); + + if (time_after(jiffies, mi->stats_update + (mp->update_interval / 2 * HZ) / 1000)) @@ -1062,7 +1064,7 @@ + struct minstrel_rate_stats *mr = &mi->groups[i].rates[j]; + int idx = i * MCS_GROUP_RATES + j; + -+ if (!mi->groups[i].supported & BIT(j)) ++ if (!(mi->groups[i].supported & BIT(j))) + continue; + + p += sprintf(p, "HT%c0/%cGI ", htmode, gimode); |