move a few unmaintained packages from trunk to /packages
[openwrt/openwrt.git] / package / madwifi / patches / 379-invalid_rate_fix.patch
diff --git a/package/madwifi/patches/379-invalid_rate_fix.patch b/package/madwifi/patches/379-invalid_rate_fix.patch
deleted file mode 100644 (file)
index c96c04d..0000000
+++ /dev/null
@@ -1,405 +0,0 @@
---- a/ath_rate/minstrel/minstrel.c
-+++ b/ath_rate/minstrel/minstrel.c
-@@ -111,27 +111,13 @@
- #include <net80211/ieee80211_var.h>
- #include <net80211/ieee80211_rate.h>
-+#include "if_ath_debug.h"
- #include "if_athvar.h"
- #include "if_ath_hal.h"
- #include "ah_desc.h"
- #include "minstrel.h"
--#ifdef AR_DEBUG
--#define       MINSTREL_DEBUG
--#endif
--#ifdef MINSTREL_DEBUG
--enum {
--              ATH_DEBUG_RATE          = 0x00000010    /* rate control */
--};
--#define       DPRINTF(sc, _fmt, ...) do {             \
--              if (sc->sc_debug & ATH_DEBUG_RATE)      \
--                      printk(_fmt, __VA_ARGS__);              \
--} while (0)
--#else
--#define       DPRINTF(sc, _fmt, ...)
--#endif
--
- #define ONE_SECOND (1000 * 1000)  /* 1 second, or 1000 milliseconds; eternity, in other words */
- #include "release.h"
-@@ -471,11 +457,11 @@ ath_rate_tx_complete(struct ath_softc *s
-               final_rate = sc->sc_hwmap[ts->ts_rate & ~HAL_TXSTAT_ALTRATE].ieeerate;
-               final_ndx = rate_to_ndx(sn, final_rate);
-               if (final_ndx >= sn->num_rates) {
--                      DPRINTF(sc, "%s: final ndx too high\n", __func__);
-+                      DPRINTF(sc, ATH_DEBUG_RATE, "%s: final ndx too high\n", __func__);
-                       final_ndx = 0;
-               }
-               if (final_ndx < 0) {
--                      DPRINTF(sc, "%s: final ndx too low\n", __func__);
-+                      DPRINTF(sc, ATH_DEBUG_RATE, "%s: final ndx too low\n", __func__);
-                       final_ndx = 0;
-               }
-@@ -485,7 +471,7 @@ ath_rate_tx_complete(struct ath_softc *s
-               tries = ts->ts_longretry + 1;
-               if (sn->num_rates <= 0) {
--                      DPRINTF(sc, "%s: " MAC_FMT " %s no rates yet\n", dev_info,
-+                      DPRINTF(sc, ATH_DEBUG_RATE, "%s: " MAC_FMT " %s no rates yet\n", dev_info,
-                               MAC_ADDR(an->an_node.ni_macaddr), __func__);
-                       return;
-               }
-@@ -551,7 +537,7 @@ ath_rate_tx_complete(struct ath_softc *s
- static void
- ath_rate_newassoc(struct ath_softc *sc, struct ath_node *an, int isnew)
- {
--              DPRINTF(sc, "%s: " MAC_FMT " %s\n", dev_info,
-+              DPRINTF(sc, ATH_DEBUG_RATE, "%s: " MAC_FMT " %s\n", dev_info,
-                       MAC_ADDR(an->an_node.ni_macaddr), __func__);
-               if (isnew)
-                       ath_rate_ctl_reset(sc, &an->an_node);
-@@ -601,7 +587,7 @@ ath_fill_sample_table(struct minstrel_no
-                           p = rates + sprintf(rates, "rates :: %d ", column_index);
-                           for (i = 0; i < num_sample_rates; i++)
-                                   p += sprintf(p, "%2u ", sn->rs_sampleTable[i][column_index]);
--                          DPRINTF(sc, "%s\n", rates);
-+                          DPRINTF(sc, ATH_DEBUG_RATE, "%s\n", rates);
-               };
- #endif
- }
-@@ -628,7 +614,7 @@ ath_rate_ctl_reset(struct ath_softc *sc,
-               sn->is_sampling = 0;
-               if (rt == NULL) {
--                      DPRINTF(sc, "no rates yet! mode %u\n", sc->sc_curmode);
-+                      DPRINTF(sc, ATH_DEBUG_RATE, "no rates yet! mode %u\n", sc->sc_curmode);
-                       return;
-               }
-               sn->static_rate_ndx = -1;
-@@ -658,7 +644,7 @@ ath_rate_ctl_reset(struct ath_softc *sc,
-                       sn->rates[x].rix = sc->sc_rixmap[sn->rates[x].rate];
-                       }
-                       if (sn->rates[x].rix == 0xff) {
--                              DPRINTF(sc, "%s: %s ignore bogus rix at %d\n",
-+                              DPRINTF(sc, ATH_DEBUG_RATE, "%s: %s ignore bogus rix at %d\n",
-                                       dev_info, __func__, x);
-                               continue;
-                       }
-@@ -673,7 +659,7 @@ ath_rate_ctl_reset(struct ath_softc *sc,
-               ni->ni_txrate = 0;
-               if (sn->num_rates <= 0) {
--                      DPRINTF(sc, "%s: %s " MAC_FMT " no rates (fixed %d) \n",
-+                      DPRINTF(sc, ATH_DEBUG_RATE, "%s: %s " MAC_FMT " no rates (fixed %d) \n",
-                               dev_info, __func__, MAC_ADDR(ni->ni_macaddr),
-                               vap->iv_fixed_rate);
-                       /* There are no rates yet; we're done */
-@@ -689,23 +675,23 @@ ath_rate_ctl_reset(struct ath_softc *sc,
-                        * the node.  We know the rate is there because the
-                        * rate set is checked when the station associates. */
-                       /* NB: the rate set is assumed sorted */
--                      for (; (srate >= 0) && (ni->ni_rates.rs_rates[srate] & IEEE80211_RATE_VAL) != vap->iv_fixed_rate; srate--);
--
--                      KASSERT(srate >= 0,
--                              ("fixed rate %d not in rate set", vap->iv_fixed_rate));
-+                      for (; (srate > 0) && (ni->ni_rates.rs_rates[srate] & IEEE80211_RATE_VAL) != vap->iv_fixed_rate; srate--);
-                       sn->static_rate_ndx = srate;
-                       ni->ni_txrate = srate;
--                      DPRINTF(sc, "%s: %s " MAC_FMT " fixed rate %d%sMbps\n",
--                              dev_info, __func__, MAC_ADDR(ni->ni_macaddr),
--                              sn->rates[srate].rate / 2,
--                              (sn->rates[srate].rate % 2) ? ".5 " : " ");
-+                      if ((ni->ni_rates.rs_rates[srate] & IEEE80211_RATE_VAL) != vap->iv_fixed_rate)
-+                              EPRINTF(sc, "Invalid static rate, falling back to basic rate\n");
-+                      else
-+                              DPRINTF(sc, ATH_DEBUG_RATE, "%s: %s " MAC_FMT " fixed rate %d%sMbps\n",
-+                                      dev_info, __func__, MAC_ADDR(ni->ni_macaddr),
-+                                      sn->rates[srate].rate / 2,
-+                                      (sn->rates[srate].rate % 2) ? ".5 " : " ");
-                       return;
-               }
-               for (x = 0; x < ni->ni_rates.rs_nrates; x++) {
-                       if (sn->rates[x].rix == 0xff) {
--                              DPRINTF(sc, "%s: %s ignore bogus rix at %d\n",
-+                              DPRINTF(sc, ATH_DEBUG_RATE, "%s: %s ignore bogus rix at %d\n",
-                                       dev_info, __func__, x);
-                               continue;
-                       }
-@@ -735,9 +721,9 @@ ath_rate_ctl_reset(struct ath_softc *sc,
-               }
- #if 0
--              DPRINTF(sc, "%s: Retry table for this node\n", __func__);
-+              DPRINTF(sc, ATH_DEBUG_RATE, "%s: Retry table for this node\n", __func__);
-                 for (x = 0; x < ni->ni_rates.rs_nrates; x++)
--                           DPRINTF(sc, "%2d  %2d %6d  \n", x, sn->retry_count[x], sn->perfect_tx_time[x]);
-+                           DPRINTF(sc, ATH_DEBUG_RATE, "%2d  %2d %6d  \n", x, sn->retry_count[x], sn->perfect_tx_time[x]);
- #endif
-               /* Set the initial rate */
-@@ -781,10 +767,10 @@ ath_timer_function(unsigned long data)
-               unsigned int interval = ath_timer_interval;
-               if (dev == NULL)
--                      DPRINTF(sc, "%s: 'dev' is null in this timer \n", __func__);
-+                      DPRINTF(sc, ATH_DEBUG_RATE, "%s: 'dev' is null in this timer \n", __func__);
-               if (sc == NULL)
--                      DPRINTF(sc, "%s: 'sc' is null in this timer\n", __func__);
-+                      DPRINTF(sc, ATH_DEBUG_RATE, "%s: 'sc' is null in this timer\n", __func__);
-               ic = &sc->sc_ic;
-@@ -808,7 +794,7 @@ ath_timer_function(unsigned long data)
-               timer  = &(ssc->timer);
-               if (timer == NULL)
--                      DPRINTF(sc, "%s: timer is null - leave it\n", __func__);
-+                      DPRINTF(sc, ATH_DEBUG_RATE, "%s: timer is null - leave it\n", __func__);
-               timer->expires = jiffies + ((HZ * interval) / 1000);
-               add_timer(timer);
-@@ -904,7 +890,7 @@ static struct ath_ratectrl *
- ath_rate_attach(struct ath_softc *sc)
- {
-               struct minstrel_softc *osc;
--              DPRINTF(sc, "%s: %s\n", dev_info, __func__);
-+              DPRINTF(sc, ATH_DEBUG_RATE, "%s: %s\n", dev_info, __func__);
-               _MOD_INC_USE(THIS_MODULE, return NULL);
-               osc = kmalloc(sizeof(struct minstrel_softc), GFP_ATOMIC);
-@@ -963,7 +949,7 @@ ath_proc_read_nodes(struct ieee80211vap
-                                       p += sprintf(p, "out of room for node " MAC_FMT "\n\n", MAC_ADDR(ni->ni_macaddr));
-                                       break;
-                               }
--                              DPRINTF(sc, "%s: out of memeory to write tall of the nodes\n", __func__);
-+                              DPRINTF(sc, ATH_DEBUG_RATE, "%s: out of memeory to write tall of the nodes\n", __func__);
-                                   break;
-                       }
-                       an = ATH_NODE(ni);
---- a/ath_rate/amrr/amrr.c
-+++ b/ath_rate/amrr/amrr.c
-@@ -64,24 +64,13 @@
- #include <net80211/ieee80211_var.h>
- #include <net80211/ieee80211_rate.h>
-+#include "if_ath_debug.h"
- #include "if_athvar.h"
- #include "if_ath_hal.h"
- #include "ah_desc.h"
- #include "amrr.h"
--#ifdef AR_DEBUG
--#define       AMRR_DEBUG
--#endif
--#ifdef AMRR_DEBUG
--#define       DPRINTF(sc, _fmt, ...) do {                                     \
--      if (sc->sc_debug & 0x10)                                        \
--              printk(_fmt, __VA_ARGS__);                              \
--} while (0)
--#else
--#define       DPRINTF(sc, _fmt, ...)
--#endif
--
- static int ath_rateinterval = 1000;           /* rate ctl interval (ms)  */
- static int ath_rate_max_success_threshold = 10;
- static int ath_rate_min_success_threshold = 1;
-@@ -197,7 +186,7 @@ ath_rate_update(struct ath_softc *sc, st
-       KASSERT(rt != NULL, ("no rate table, mode %u", sc->sc_curmode));
--      DPRINTF(sc, "%s: set xmit rate for " MAC_FMT " to %dM\n",
-+      DPRINTF(sc, ATH_DEBUG_RATE, "%s: set xmit rate for " MAC_FMT " to %dM\n",
-               __func__, MAC_ADDR(ni->ni_macaddr),
-               ni->ni_rates.rs_nrates > 0 ?
-                       (ni->ni_rates.rs_rates[rate] & IEEE80211_RATE_VAL) / 2 : 0);
-@@ -297,9 +286,9 @@ ath_rate_ctl_start(struct ath_softc *sc,
-                * rate set is checked when the station associates.
-                */
-               srate = ni->ni_rates.rs_nrates - 1;
--              for (; srate >= 0 && RATE(srate) != vap->iv_fixed_rate; srate--);
--              KASSERT(srate >= 0,
--                      ("fixed rate %d not in rate set", vap->iv_fixed_rate));
-+              for (; srate > 0 && RATE(srate) != vap->iv_fixed_rate; srate--);
-+              if (RATE(srate) != vap->iv_fixed_rate)
-+                      EPRINTF(sc, "Invalid static rate, falling back to basic rate\n");
-       }
-       ath_rate_update(sc, ni, srate);
- #undef RATE
-@@ -377,7 +366,7 @@ ath_rate_ctl(void *arg, struct ieee80211
-       old_rate = ni->ni_txrate;
--      DPRINTF (sc, "cnt0: %d cnt1: %d cnt2: %d cnt3: %d -- threshold: %d\n",
-+      DPRINTF(sc, ATH_DEBUG_RATE, "cnt0: %d cnt1: %d cnt2: %d cnt3: %d -- threshold: %d\n",
-                amn->amn_tx_try0_cnt,
-                amn->amn_tx_try1_cnt,
-                amn->amn_tx_try2_cnt,
-@@ -390,7 +379,7 @@ ath_rate_ctl(void *arg, struct ieee80211
-                       amn->amn_recovery = 1;
-                       amn->amn_success = 0;
-                       ni->ni_txrate++;
--                      DPRINTF(sc, "increase rate to %d\n", ni->ni_txrate);
-+                      DPRINTF(sc, ATH_DEBUG_RATE, "increase rate to %d\n", ni->ni_txrate);
-               } else
-                       amn->amn_recovery = 0;
-       } else if (is_failure(amn)) {
-@@ -401,12 +390,12 @@ ath_rate_ctl(void *arg, struct ieee80211
-                               amn->amn_success_threshold *= 2;
-                               amn->amn_success_threshold = min(amn->amn_success_threshold,
-                                                                 (u_int)ath_rate_max_success_threshold);
--                              DPRINTF(sc, "decrease rate recovery thr: %d\n",
-+                              DPRINTF(sc, ATH_DEBUG_RATE, "decrease rate recovery thr: %d\n",
-                                       amn->amn_success_threshold);
-                       } else {
-                               /* simple failure. */
-                               amn->amn_success_threshold = ath_rate_min_success_threshold;
--                              DPRINTF(sc, "decrease rate normal thr: %d\n",
-+                              DPRINTF(sc, ATH_DEBUG_RATE, "decrease rate normal thr: %d\n",
-                                       amn->amn_success_threshold);
-                       }
-                       amn->amn_recovery = 0;
---- a/ath_rate/onoe/onoe.c
-+++ b/ath_rate/onoe/onoe.c
-@@ -60,27 +60,13 @@
- #include <net80211/ieee80211_var.h>
- #include <net80211/ieee80211_rate.h>
-+#include "if_ath_debug.h"
- #include "if_athvar.h"
- #include "if_ath_hal.h"
- #include "ah_desc.h"
- #include "onoe.h"
--#ifdef AR_DEBUG
--#define       ONOE_DEBUG
--#endif
--#ifdef ONOE_DEBUG
--enum {
--      ATH_DEBUG_RATE  = 0x00000010,   /* rate control */
--};
--#define       DPRINTF(sc, _fmt, ...) do {                             \
--      if (sc->sc_debug & ATH_DEBUG_RATE)                      \
--              printk(_fmt, __VA_ARGS__);                      \
--} while (0)
--#else
--#define       DPRINTF(sc, _fmt, ...)
--#endif
--
- /*
-  * Default parameters for the rate control algorithm.  These are
-  * all tunable with sysctls.  The rate controller runs periodically
-@@ -186,7 +172,7 @@ ath_rate_update(struct ath_softc *sc, st
-       KASSERT(rt != NULL, ("no rate table, mode %u", sc->sc_curmode));
--      DPRINTF(sc, "%s: set xmit rate for " MAC_FMT " to %dM\n",
-+      DPRINTF(sc, ATH_DEBUG_RATE, "%s: set xmit rate for " MAC_FMT " to %dM\n",
-               __func__, MAC_ADDR(ni->ni_macaddr),
-               ni->ni_rates.rs_nrates > 0 ?
-                       (ni->ni_rates.rs_rates[rate] & IEEE80211_RATE_VAL) / 2 : 0);
-@@ -283,9 +269,9 @@ ath_rate_ctl_start(struct ath_softc *sc,
-                */
-               /* NB: the rate set is assumed sorted */
-               srate = ni->ni_rates.rs_nrates - 1;
--              for (; srate >= 0 && RATE(srate) != vap->iv_fixed_rate; srate--);
--              KASSERT(srate >= 0,
--                      ("fixed rate %d not in rate set", vap->iv_fixed_rate));
-+              for (; srate > 0 && RATE(srate) != vap->iv_fixed_rate; srate--);
-+              if (RATE(srate) != vap->iv_fixed_rate)
-+                      EPRINTF(sc, "Invalid static rate, falling back to basic rate\n");
-       }
-       ath_rate_update(sc, ni, srate);
- #undef RATE
-@@ -364,7 +350,7 @@ ath_rate_ctl(void *arg, struct ieee80211
-           on->on_tx_retr < (on->on_tx_ok * ath_rate_raise) / 100)
-               dir = 1;
--      DPRINTF(sc, MAC_FMT ": ok %d err %d retr %d upper %d dir %d\n",
-+      DPRINTF(sc, ATH_DEBUG_RATE, MAC_FMT ": ok %d err %d retr %d upper %d dir %d\n",
-               MAC_ADDR(ni->ni_macaddr),
-               on->on_tx_ok, on->on_tx_err, on->on_tx_retr,
-               on->on_tx_upper, dir);
-@@ -395,7 +381,7 @@ ath_rate_ctl(void *arg, struct ieee80211
-       }
-       if (nrate != ni->ni_txrate) {
--              DPRINTF(sc, "%s: %dM -> %dM (%d ok, %d err, %d retr)\n",
-+              DPRINTF(sc, ATH_DEBUG_RATE, "%s: %dM -> %dM (%d ok, %d err, %d retr)\n",
-                   __func__,
-                   (rs->rs_rates[ni->ni_txrate] & IEEE80211_RATE_VAL) / 2,
-                   (rs->rs_rates[nrate] & IEEE80211_RATE_VAL) / 2,
---- a/ath_rate/sample/sample.c
-+++ b/ath_rate/sample/sample.c
-@@ -62,30 +62,13 @@
- #include <net80211/ieee80211_var.h>
- #include <net80211/ieee80211_rate.h>
-+#include "if_ath_debug.h"
- #include "if_athvar.h"
- #include "if_ath_hal.h"
- #include "ah_desc.h"
- #include "sample.h"
--#ifdef AR_DEBUG
--#define SAMPLE_DEBUG
--#endif
--#ifdef SAMPLE_DEBUG
--enum {
--      ATH_DEBUG_RATE          = 0x00000010,   /* rate control */
--      ATH_DEBUG_ANY           = 0xffffffff
--};
--#define       DPRINTF(sc, m, fmt, ...) do {                           \
--      if (sc->sc_debug & (m))                                 \
--              printk(fmt, __VA_ARGS__);                       \
--} while (0)
--#else
--#define       DPRINTF(sc, m, fmt, ...) do {                           \
--      (void) sc;                                              \
--} while (0)
--#endif
--
- /*
-  * This file is an implementation of the SampleRate algorithm
-  * in "Bit-rate Selection in Wireless Networks"
-@@ -740,7 +723,7 @@ ath_rate_tx_complete(struct ath_softc *s
-               ndx[3] = rate_to_ndx(sn, rate[3]);
- #if 0
--              DPRINTF(sc, "%s: " MAC_FMT " size %u finaltsidx %u tries %u status %u rate/try %u/%u %u/%u %u/%u %u/%u\n",
-+              DPRINTF(sc, ATH_DEBUG_RATE, "%s: " MAC_FMT " size %u finaltsidx %u tries %u status %u rate/try %u/%u %u/%u %u/%u %u/%u\n",
-                       dev_info, MAC_ADDR(an->an_node.ni_macaddr),
-                       bin_to_size(size_to_bin(frame_size)),
-                       finalTSIdx,
-@@ -886,15 +869,16 @@ ath_rate_ctl_reset(struct ath_softc *sc,
-                       if ((ni->ni_rates.rs_rates[x] & IEEE80211_RATE_VAL) == vap->iv_fixed_rate)
-                               srate = x;
--              KASSERT(((ni->ni_rates.rs_rates[srate] & IEEE80211_RATE_VAL) == vap->iv_fixed_rate),
--                      ("fixed rate %u not in rate set", vap->iv_fixed_rate));
--
-               sn->static_rate_ndx = srate;
-               ni->ni_txrate = srate;
--              DPRINTF(sc, ATH_DEBUG_RATE, "%s: %s " MAC_FMT " fixed rate %u%sMbps\n",
--                      dev_info, __func__, MAC_ADDR(ni->ni_macaddr),
--                      sn->rates[srate].rate / 2,
--                      (sn->rates[srate].rate % 0x1) ? ".5" : " ");
-+
-+              if ((ni->ni_rates.rs_rates[srate] & IEEE80211_RATE_VAL) != vap->iv_fixed_rate)
-+                      EPRINTF(sc, "Invalid static rate, falling back to basic rate\n");
-+              else
-+                      DPRINTF(sc, ATH_DEBUG_RATE, "%s: %s " MAC_FMT " fixed rate %u%sMbps\n",
-+                              dev_info, __func__, MAC_ADDR(ni->ni_macaddr),
-+                              sn->rates[srate].rate / 2,
-+                              (sn->rates[srate].rate % 0x1) ? ".5" : " ");
-               return;
-       }