Thread (6 messages) 6 messages, 3 authors, 2009-05-27

Re: [PATCH 4/4] mac80211: Fix typos in "set default QoS values according to spec"

From: Jouni Malinen <hidden>
Date: 2009-05-27 05:12:54

On Tue, 2009-05-26 at 22:05 -0700, Jeff Hansen wrote:
Some of the acwmin and acwmax values were backwards in the original patch,
which cut TX performance (on my device at least) down from ~25-30Mbps to
2Mbps.  Performance is back up after this commit.
Thanks for reporting these and verifying that this fixes the issue.
However, not all of these are typos.. In addition,
linux-wireless@vger.kernel.org should be cc'ed.
quoted hunk ↗ jump to hunk
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
quoted hunk ↗ jump to hunk
@@ -657,20 +657,20 @@ void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata)

                switch (queue) {
                case 3: /* AC_BK */
-                       qparam.cw_max = aCWmin;
-                       qparam.cw_min = aCWmax;
+                       qparam.cw_max = aCWmax;
+                       qparam.cw_min = aCWmin;
                        qparam.txop = 0;
                        qparam.aifs = 7;
                        break;
                default: /* never happens but let's not leave undefined */
                case 2: /* AC_BE */
-                       qparam.cw_max = aCWmin;
-                       qparam.cw_min = aCWmax;
+                       qparam.cw_max = aCWmax;
+                       qparam.cw_min = aCWmin;
                        qparam.txop = 0;
                        qparam.aifs = 3;
                        break;
These are correct fixes.
quoted hunk ↗ jump to hunk
                case 1: /* AC_VI */
-                       qparam.cw_max = aCWmin;
+                       qparam.cw_max = aCWmax;
                        qparam.cw_min = (aCWmin + 1) / 2 - 1;
                        if (use_11b)
                                qparam.txop = 6016/32;
@@ -679,7 +679,7 @@ void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata)
                        qparam.aifs = 2;
                        break;
                case 0: /* AC_VO */
-                       qparam.cw_max = (aCWmin + 1) / 2 - 1;
+                       qparam.cw_max = (aCWmax + 1) / 2 - 1;
                        qparam.cw_min = (aCWmin + 1) / 4 - 1;
                        if (use_11b)
                                qparam.txop = 3264/32;
These were actually already correct (yes, it may look like a typo, but
it is not, both of VI and VO are indeed using aCWmin in calculation for
both min and max values) and should not be changed.

- Jouni

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help