From: Stefano Brivio <stefano.brivio@polimi.it>
To: "John W. Linville" <linville@tuxdriver.com>
Cc: linux-wireless@vger.kernel.org, Mattias Nissler <mattias.nissler@gmx.de>
Subject: [PATCH 3/7] rc80211-pid: simplify and fix shift_adjust
Date: Sun, 23 Dec 2007 04:41:19 +0100 [thread overview]
Message-ID: <20071223044119.088f6b55@morte> (raw)
In-Reply-To: <20071223033633.710907923@polimi.it>
Simplify and fix rate_control_pid_shift_adjust(). A bug prevented correct
mapping of sorted rates, and readability was seriously flawed.
Signed-off-by: Stefano Brivio <stefano.brivio@polimi.it>
---
rc80211_pid_algo.c | 34 ++++++++++++++++------------------
1 file changed, 16 insertions(+), 18 deletions(-)
Index: wireless-2.6/net/mac80211/rc80211_pid_algo.c
===================================================================
--- wireless-2.6.orig/net/mac80211/rc80211_pid_algo.c
+++ wireless-2.6/net/mac80211/rc80211_pid_algo.c
@@ -74,29 +74,27 @@ static int rate_control_pid_shift_adjust
{
int i, j, k, tmp;
- if (cur + adj < 0)
- return 0;
- if (cur + adj >= l)
- return l - 1;
+ j = r[cur].rev_index;
+ i = j + adj;
- i = r[cur + adj].rev_index;
+ if (i < 0)
+ return r[0].index;
+ if (i >= l - 1)
+ return r[l - 1].index;
- j = r[cur].rev_index;
+ tmp = i;
if (adj < 0) {
- tmp = i;
- for (k = j; k >= i; k--)
- if (r[k].diff <= r[j].diff)
- tmp = k;
- return r[tmp].index;
- } else if (adj > 0) {
- tmp = i;
- for (k = i + 1; k + i < l; k++)
- if (r[k].diff <= r[i].diff)
- tmp = k;
- return r[tmp].index;
+ for (k = j; k >= i; k--)
+ if (r[k].diff <= r[j].diff)
+ tmp = k;
+ } else {
+ for (k = i + 1; k + i < l; k++)
+ if (r[k].diff <= r[i].diff)
+ tmp = k;
}
- return cur + adj;
+
+ return r[tmp].index;
}
static void rate_control_pid_adjust_rate(struct ieee80211_local *local,
--
Ciao
Stefano
next prev parent reply other threads:[~2007-12-23 3:43 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20071223033633.710907923@polimi.it>
2007-12-23 3:39 ` [PATCH 1/7] rc80211-pid: export human-readable target_pf value to debugfs Stefano Brivio
[not found] ` <20071223120124.39050@gmx.net>
[not found] ` <20071223131135.391cc0bb@morte>
2007-12-23 12:19 ` Mattias Nissler
2007-12-23 12:41 ` Stefano Brivio
2007-12-23 3:40 ` [PATCH 2/7] rc80211-pid: add kerneldoc for tunable parameters Stefano Brivio
2007-12-23 3:41 ` Stefano Brivio [this message]
2007-12-23 3:43 ` [PATCH 4/7] rc80211-pid: fix sta_info refcounting Stefano Brivio
2007-12-23 10:15 ` Johannes Berg
2007-12-23 3:44 ` [PATCH 5/7] rc80211-pid: pf_target tuning Stefano Brivio
2007-12-23 3:46 ` [PATCH 6/7] rc80211-pid: add MAINTAINERS entry Stefano Brivio
2007-12-23 4:08 ` [RFC PATCH 7/7] mac80211: fix sta_info locking Stefano Brivio
2007-12-23 7:38 ` Johannes Berg
2007-12-23 10:18 ` Stefano Brivio
2007-12-23 10:36 ` Stefano Brivio
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20071223044119.088f6b55@morte \
--to=stefano.brivio@polimi.it \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=mattias.nissler@gmx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).