aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorVasanthakumar Thiagarajan <vasanth@atheros.com>2010-04-15 17:38:46 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-04-16 15:43:26 -0400
commit6d913f7db3ff5cc5c9b673d8db8e4a8b9f86d85b (patch)
tree81f067e296332e38468d36d7dd5663f66d30c200 /drivers
parentd826c83277a2a661cd0d37d051d5a4931b8463ff (diff)
ath9k: Remove ATH9K_TX_SW_ABORTED and introduce a bool for this purpose
Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com> Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ath/ath9k/common.h1
-rw-r--r--drivers/net/wireless/ath/ath9k/mac.h1
-rw-r--r--drivers/net/wireless/ath/ath9k/xmit.c9
3 files changed, 5 insertions, 6 deletions
diff --git a/drivers/net/wireless/ath/ath9k/common.h b/drivers/net/wireless/ath/ath9k/common.h
index 1a87283a0941..5fd7fe10d7ea 100644
--- a/drivers/net/wireless/ath/ath9k/common.h
+++ b/drivers/net/wireless/ath/ath9k/common.h
@@ -82,6 +82,7 @@ struct ath_buf {
82 dma_addr_t bf_buf_addr; /* physical addr of data buffer */ 82 dma_addr_t bf_buf_addr; /* physical addr of data buffer */
83 bool bf_stale; 83 bool bf_stale;
84 bool bf_isnullfunc; 84 bool bf_isnullfunc;
85 bool bf_tx_aborted;
85 u16 bf_flags; 86 u16 bf_flags;
86 struct ath_buf_state bf_state; 87 struct ath_buf_state bf_state;
87 dma_addr_t bf_dmacontext; 88 dma_addr_t bf_dmacontext;
diff --git a/drivers/net/wireless/ath/ath9k/mac.h b/drivers/net/wireless/ath/ath9k/mac.h
index f2f4ad253696..99f81ebb35bf 100644
--- a/drivers/net/wireless/ath/ath9k/mac.h
+++ b/drivers/net/wireless/ath/ath9k/mac.h
@@ -86,7 +86,6 @@
86#define ATH9K_TX_DESC_CFG_ERR 0x04 86#define ATH9K_TX_DESC_CFG_ERR 0x04
87#define ATH9K_TX_DATA_UNDERRUN 0x08 87#define ATH9K_TX_DATA_UNDERRUN 0x08
88#define ATH9K_TX_DELIM_UNDERRUN 0x10 88#define ATH9K_TX_DELIM_UNDERRUN 0x10
89#define ATH9K_TX_SW_ABORTED 0x40
90#define ATH9K_TX_SW_FILTERED 0x80 89#define ATH9K_TX_SW_FILTERED 0x80
91 90
92/* 64 bytes */ 91/* 64 bytes */
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
index 4bc52f4a0ad3..6ab20992ba30 100644
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -359,7 +359,7 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq,
359 acked_cnt++; 359 acked_cnt++;
360 } else { 360 } else {
361 if (!(tid->state & AGGR_CLEANUP) && 361 if (!(tid->state & AGGR_CLEANUP) &&
362 ts->ts_flags != ATH9K_TX_SW_ABORTED) { 362 !bf_last->bf_tx_aborted) {
363 if (bf->bf_retries < ATH_MAX_SW_RETRIES) { 363 if (bf->bf_retries < ATH_MAX_SW_RETRIES) {
364 ath_tx_set_retry(sc, txq, bf); 364 ath_tx_set_retry(sc, txq, bf);
365 txpending = 1; 365 txpending = 1;
@@ -1036,9 +1036,6 @@ void ath_draintxq(struct ath_softc *sc, struct ath_txq *txq, bool retry_tx)
1036 struct ath_tx_status ts; 1036 struct ath_tx_status ts;
1037 1037
1038 memset(&ts, 0, sizeof(ts)); 1038 memset(&ts, 0, sizeof(ts));
1039 if (!retry_tx)
1040 ts.ts_flags = ATH9K_TX_SW_ABORTED;
1041
1042 INIT_LIST_HEAD(&bf_head); 1039 INIT_LIST_HEAD(&bf_head);
1043 1040
1044 for (;;) { 1041 for (;;) {
@@ -1063,6 +1060,8 @@ void ath_draintxq(struct ath_softc *sc, struct ath_txq *txq, bool retry_tx)
1063 } 1060 }
1064 1061
1065 lastbf = bf->bf_lastbf; 1062 lastbf = bf->bf_lastbf;
1063 if (!retry_tx)
1064 lastbf->bf_tx_aborted = true;
1066 1065
1067 /* remove ath_buf's of the same mpdu from txq */ 1066 /* remove ath_buf's of the same mpdu from txq */
1068 list_cut_position(&bf_head, &txq->axq_q, &lastbf->list); 1067 list_cut_position(&bf_head, &txq->axq_q, &lastbf->list);
@@ -1897,7 +1896,7 @@ static int ath_tx_num_badfrms(struct ath_softc *sc, struct ath_buf *bf,
1897 int nbad = 0; 1896 int nbad = 0;
1898 int isaggr = 0; 1897 int isaggr = 0;
1899 1898
1900 if (ts->ts_flags == ATH9K_TX_SW_ABORTED) 1899 if (bf->bf_tx_aborted)
1901 return 0; 1900 return 0;
1902 1901
1903 isaggr = bf_isaggr(bf); 1902 isaggr = bf_isaggr(bf);