mac80211: backport latest version from trunk
[openwrt-10.03/.git] / package / mac80211 / patches / 540-ath9k_fix_queue_debug.patch
diff --git a/package/mac80211/patches/540-ath9k_fix_queue_debug.patch b/package/mac80211/patches/540-ath9k_fix_queue_debug.patch
deleted file mode 100644 (file)
index 4dea506..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
---- a/drivers/net/wireless/ath/ath9k/debug.c
-+++ b/drivers/net/wireless/ath/ath9k/debug.c
-@@ -450,14 +450,15 @@ static const struct file_operations fops
-       .llseek = default_llseek,
- };
-+#define PR_QNUM(_n) sc->tx.txq_map[_n]->axq_qnum
- #define PR(str, elem)                                                 \
-       do {                                                            \
-               len += snprintf(buf + len, size - len,                  \
-                               "%s%13u%11u%10u%10u\n", str,            \
--              sc->debug.stats.txstats[WME_AC_BE].elem, \
--              sc->debug.stats.txstats[WME_AC_BK].elem, \
--              sc->debug.stats.txstats[WME_AC_VI].elem, \
--              sc->debug.stats.txstats[WME_AC_VO].elem); \
-+              sc->debug.stats.txstats[PR_QNUM(WME_AC_BE)].elem, \
-+              sc->debug.stats.txstats[PR_QNUM(WME_AC_BK)].elem, \
-+              sc->debug.stats.txstats[PR_QNUM(WME_AC_VI)].elem, \
-+              sc->debug.stats.txstats[PR_QNUM(WME_AC_VO)].elem); \
-               if (len >= size)                          \
-                       goto done;                        \
- } while(0)
-@@ -466,10 +467,10 @@ static const struct file_operations fops
- do {                                                                  \
-       len += snprintf(buf + len, size - len,                          \
-                       "%s%13u%11u%10u%10u\n", str,                    \
--                      (unsigned int)(sc->tx.txq[ATH_TXQ_AC_BE].elem), \
--                      (unsigned int)(sc->tx.txq[ATH_TXQ_AC_BK].elem), \
--                      (unsigned int)(sc->tx.txq[ATH_TXQ_AC_VI].elem), \
--                      (unsigned int)(sc->tx.txq[ATH_TXQ_AC_VO].elem));        \
-+                      (unsigned int)(sc->tx.txq_map[WME_AC_BE]->elem),        \
-+                      (unsigned int)(sc->tx.txq_map[WME_AC_BK]->elem),        \
-+                      (unsigned int)(sc->tx.txq_map[WME_AC_VI]->elem),        \
-+                      (unsigned int)(sc->tx.txq_map[WME_AC_VO]->elem));       \
-       if (len >= size)                                                \
-               goto done;                                              \
- } while(0)
-@@ -478,10 +479,10 @@ do {                                                                     \
- do {                                                                  \
-       len += snprintf(buf + len, size - len,                          \
-                       "%s%13i%11i%10i%10i\n", str,                    \
--                      list_empty(&sc->tx.txq[ATH_TXQ_AC_BE].elem),    \
--                      list_empty(&sc->tx.txq[ATH_TXQ_AC_BK].elem),    \
--                      list_empty(&sc->tx.txq[ATH_TXQ_AC_VI].elem),    \
--                      list_empty(&sc->tx.txq[ATH_TXQ_AC_VO].elem));   \
-+                      list_empty(&sc->tx.txq_map[WME_AC_BE]->elem),   \
-+                      list_empty(&sc->tx.txq_map[WME_AC_BK]->elem),   \
-+                      list_empty(&sc->tx.txq_map[WME_AC_VI]->elem),   \
-+                      list_empty(&sc->tx.txq_map[WME_AC_VO]->elem));  \
-       if (len >= size)                                                \
-               goto done;                                              \
- } while (0)
-@@ -528,10 +529,10 @@ static ssize_t read_file_xmit(struct fil
-       PR("hw-tx-proc-desc: ", txprocdesc);
-       len += snprintf(buf + len, size - len,
-                       "%s%11p%11p%10p%10p\n", "txq-memory-address:",
--                      &(sc->tx.txq[ATH_TXQ_AC_BE]),
--                      &(sc->tx.txq[ATH_TXQ_AC_BK]),
--                      &(sc->tx.txq[ATH_TXQ_AC_VI]),
--                      &(sc->tx.txq[ATH_TXQ_AC_VO]));
-+                      &(sc->tx.txq_map[WME_AC_BE]),
-+                      &(sc->tx.txq_map[WME_AC_BK]),
-+                      &(sc->tx.txq_map[WME_AC_VI]),
-+                      &(sc->tx.txq_map[WME_AC_VO]));
-       if (len >= size)
-               goto done;
-@@ -751,9 +752,9 @@ static ssize_t read_file_misc(struct fil
- }
- void ath_debug_stat_tx(struct ath_softc *sc, struct ath_buf *bf,
--                     struct ath_tx_status *ts)
-+                     struct ath_tx_status *ts, struct ath_txq *txq)
- {
--      int qnum = skb_get_queue_mapping(bf->bf_mpdu);
-+      int qnum = txq->axq_qnum;
-       TX_STAT_INC(qnum, tx_pkts_all);
-       sc->debug.stats.txstats[qnum].tx_bytes_all += bf->bf_mpdu->len;
---- a/drivers/net/wireless/ath/ath9k/debug.h
-+++ b/drivers/net/wireless/ath/ath9k/debug.h
-@@ -175,7 +175,7 @@ int ath9k_init_debug(struct ath_hw *ah);
- void ath_debug_stat_interrupt(struct ath_softc *sc, enum ath9k_int status);
- void ath_debug_stat_tx(struct ath_softc *sc, struct ath_buf *bf,
--                     struct ath_tx_status *ts);
-+                     struct ath_tx_status *ts, struct ath_txq *txq);
- void ath_debug_stat_rx(struct ath_softc *sc, struct ath_rx_status *rs);
- #else
-@@ -192,7 +192,8 @@ static inline void ath_debug_stat_interr
- static inline void ath_debug_stat_tx(struct ath_softc *sc,
-                                    struct ath_buf *bf,
--                                   struct ath_tx_status *ts)
-+                                   struct ath_tx_status *ts,
-+                                   struct ath_txq *txq)
- {
- }
---- a/drivers/net/wireless/ath/ath9k/xmit.c
-+++ b/drivers/net/wireless/ath/ath9k/xmit.c
-@@ -1913,7 +1913,7 @@ static void ath_tx_complete_buf(struct a
-               else
-                       complete(&sc->paprd_complete);
-       } else {
--              ath_debug_stat_tx(sc, bf, ts);
-+              ath_debug_stat_tx(sc, bf, ts, txq);
-               ath_tx_complete(sc, skb, tx_flags,
-                               bf->bf_state.bfs_ftype, txq);
-       }