mac80211: Fix pid rate-setting algorithm to allow rate changes
authorLarry Finger <Larry.Finger@lwfinger.net>
Sun, 16 Nov 2008 23:09:25 +0000 (17:09 -0600)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 26 Nov 2008 14:47:20 +0000 (09:47 -0500)
In commit 9ea2c74 named "mac80211/drivers: rewrite the rate control API",
the meaning of status.rates[i].count was changed from number of retries
to total number of tries. As a result, the pid rate-setting algorithm fails
because every packet appears to have needed a retransmit.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/rc80211_pid_algo.c

index 96ceb7e86c5c2214dbb15bf8977a8d363e546dba..b16801cde06f41825b6f0db7fd2f4188ebdbcbf8 100644 (file)
@@ -256,7 +256,7 @@ static void rate_control_pid_tx_status(void *priv, struct ieee80211_supported_ba
        if (!(info->flags & IEEE80211_TX_STAT_ACK)) {
                spinfo->tx_num_failed += 2;
                spinfo->tx_num_xmit++;
-       } else if (info->status.rates[0].count) {
+       } else if (info->status.rates[0].count > 1) {
                spinfo->tx_num_failed++;
                spinfo->tx_num_xmit++;
        }