* [PATCH 0/3] Few clean ups @ 2009-06-10 12:20 Vasanthakumar Thiagarajan 2009-06-10 12:20 ` [PATCH 1/3] ath9k: Nuke unneccesary helper function to see if aggr is active Vasanthakumar Thiagarajan 0 siblings, 1 reply; 4+ messages in thread From: Vasanthakumar Thiagarajan @ 2009-06-10 12:20 UTC (permalink / raw) To: linville; +Cc: linux-wireless, Luis.Rodriguez, Jouni.Malinen, ath9k-devel These are few clean ups which apply over Luis' rc cleanup series. Vasanthakumar Thiagarajan (3): ath9k: Nuke unneccesary helper function to see if aggr is active ath9k: Remove unnecessary count for addba attempt ath9k: downgrade ASSERT() in ath_clone_txbuf() drivers/net/wireless/ath/ath9k/ath9k.h | 1 - drivers/net/wireless/ath/ath9k/xmit.c | 33 +++++++------------------------ 2 files changed, 8 insertions(+), 26 deletions(-) ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/3] ath9k: Nuke unneccesary helper function to see if aggr is active 2009-06-10 12:20 [PATCH 0/3] Few clean ups Vasanthakumar Thiagarajan @ 2009-06-10 12:20 ` Vasanthakumar Thiagarajan 2009-06-10 12:20 ` [PATCH 2/3] ath9k: Remove unnecessary count for addba attempt Vasanthakumar Thiagarajan 0 siblings, 1 reply; 4+ messages in thread From: Vasanthakumar Thiagarajan @ 2009-06-10 12:20 UTC (permalink / raw) To: linville; +Cc: linux-wireless, Luis.Rodriguez, Jouni.Malinen, ath9k-devel IEEE80211_TX_CTL_AMPDU in tx control flags should be enough to confirm BA is negotiated for that tid. Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com> --- drivers/net/wireless/ath/ath9k/xmit.c | 14 +------------- 1 files changed, 1 insertions(+), 13 deletions(-) diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c index b61a071..687e475 100644 --- a/drivers/net/wireless/ath/ath9k/xmit.c +++ b/drivers/net/wireless/ath/ath9k/xmit.c @@ -73,18 +73,6 @@ static void ath_tx_rc_status(struct ath_buf *bf, struct ath_desc *ds, /* Aggregation logic */ /*********************/ -static int ath_aggr_query(struct ath_softc *sc, struct ath_node *an, u8 tidno) -{ - struct ath_atx_tid *tid; - tid = ATH_AN_2_TID(an, tidno); - - if (tid->state & AGGR_ADDBA_COMPLETE || - tid->state & AGGR_ADDBA_PROGRESS) - return 1; - else - return 0; -} - static void ath_tx_queue_tid(struct ath_txq *txq, struct ath_atx_tid *tid) { struct ath_atx_ac *ac = tid->ac; @@ -1629,7 +1617,7 @@ static void ath_tx_start_dma(struct ath_softc *sc, struct ath_buf *bf, goto tx_done; } - if (ath_aggr_query(sc, an, bf->bf_tidno)) { + if (tx_info->flags & IEEE80211_TX_CTL_AMPDU) { /* * Try aggregation if it's a unicast data frame * and the destination is HT capable. -- 1.5.5.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/3] ath9k: Remove unnecessary count for addba attempt 2009-06-10 12:20 ` [PATCH 1/3] ath9k: Nuke unneccesary helper function to see if aggr is active Vasanthakumar Thiagarajan @ 2009-06-10 12:20 ` Vasanthakumar Thiagarajan 2009-06-10 12:20 ` [PATCH 3/3] ath9k: downgrade ASSERT() in ath_clone_txbuf() Vasanthakumar Thiagarajan 0 siblings, 1 reply; 4+ messages in thread From: Vasanthakumar Thiagarajan @ 2009-06-10 12:20 UTC (permalink / raw) To: linville; +Cc: linux-wireless, Luis.Rodriguez, Jouni.Malinen, ath9k-devel mac80211 already has one to keep track of number of failure addba attempts. Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com> --- drivers/net/wireless/ath/ath9k/ath9k.h | 1 - drivers/net/wireless/ath/ath9k/xmit.c | 13 +------------ 2 files changed, 1 insertions(+), 13 deletions(-) diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h index ca14642..968bf20 100644 --- a/drivers/net/wireless/ath/ath9k/ath9k.h +++ b/drivers/net/wireless/ath/ath9k/ath9k.h @@ -276,7 +276,6 @@ struct ath_atx_tid { int sched; int paused; u8 state; - int addba_exchangeattempts; }; struct ath_atx_ac { diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c index 687e475..e074e6f 100644 --- a/drivers/net/wireless/ath/ath9k/xmit.c +++ b/drivers/net/wireless/ath/ath9k/xmit.c @@ -395,7 +395,6 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq, if (tid->state & AGGR_CLEANUP) { if (tid->baw_head == tid->baw_tail) { tid->state &= ~AGGR_ADDBA_COMPLETE; - tid->addba_exchangeattempts = 0; tid->state &= ~AGGR_CLEANUP; /* send buffered frames as singles */ @@ -700,7 +699,6 @@ int ath_tx_aggr_stop(struct ath_softc *sc, struct ieee80211_sta *sta, u16 tid) if (!(txtid->state & AGGR_ADDBA_COMPLETE)) { txtid->state &= ~AGGR_ADDBA_PROGRESS; - txtid->addba_exchangeattempts = 0; return 0; } @@ -728,7 +726,6 @@ int ath_tx_aggr_stop(struct ath_softc *sc, struct ieee80211_sta *sta, u16 tid) txtid->state |= AGGR_CLEANUP; } else { txtid->state &= ~AGGR_ADDBA_COMPLETE; - txtid->addba_exchangeattempts = 0; ath_tx_flush_tid(sc, txtid); } @@ -761,14 +758,8 @@ bool ath_tx_aggr_check(struct ath_softc *sc, struct ath_node *an, u8 tidno) txtid = ATH_AN_2_TID(an, tidno); - if (!(txtid->state & AGGR_ADDBA_COMPLETE)) { - if (!(txtid->state & AGGR_ADDBA_PROGRESS) && - (txtid->addba_exchangeattempts < ADDBA_EXCHANGE_ATTEMPTS)) { - txtid->addba_exchangeattempts++; + if (!(txtid->state & (AGGR_ADDBA_COMPLETE | AGGR_ADDBA_PROGRESS))) return true; - } - } - return false; } @@ -2103,7 +2094,6 @@ void ath_tx_node_init(struct ath_softc *sc, struct ath_node *an) tid->ac = &an->ac[acno]; tid->state &= ~AGGR_ADDBA_COMPLETE; tid->state &= ~AGGR_ADDBA_PROGRESS; - tid->addba_exchangeattempts = 0; } for (acno = 0, ac = &an->ac[acno]; @@ -2160,7 +2150,6 @@ void ath_tx_node_cleanup(struct ath_softc *sc, struct ath_node *an) tid->sched = false; ath_tid_drain(sc, txq, tid); tid->state &= ~AGGR_ADDBA_COMPLETE; - tid->addba_exchangeattempts = 0; tid->state &= ~AGGR_CLEANUP; } } -- 1.5.5.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 3/3] ath9k: downgrade ASSERT() in ath_clone_txbuf() 2009-06-10 12:20 ` [PATCH 2/3] ath9k: Remove unnecessary count for addba attempt Vasanthakumar Thiagarajan @ 2009-06-10 12:20 ` Vasanthakumar Thiagarajan 0 siblings, 0 replies; 4+ messages in thread From: Vasanthakumar Thiagarajan @ 2009-06-10 12:20 UTC (permalink / raw) To: linville; +Cc: linux-wireless, Luis.Rodriguez, Jouni.Malinen, ath9k-devel We can easily run out of tx buf if there is any stuck in transmission, so downgrade it to WARN_ON(). Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com> --- drivers/net/wireless/ath/ath9k/xmit.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c index e074e6f..c140f81 100644 --- a/drivers/net/wireless/ath/ath9k/xmit.c +++ b/drivers/net/wireless/ath/ath9k/xmit.c @@ -238,6 +238,10 @@ static struct ath_buf* ath_clone_txbuf(struct ath_softc *sc, struct ath_buf *bf) struct ath_buf *tbf; spin_lock_bh(&sc->tx.txbuflock); + if (WARN_ON(list_empty(&sc->tx.txbuf))) { + spin_unlock_bh(&sc->tx.txbuflock); + return NULL; + } ASSERT(!list_empty((&sc->tx.txbuf))); tbf = list_first_entry(&sc->tx.txbuf, struct ath_buf, list); list_del(&tbf->list); @@ -372,6 +376,8 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq, struct ath_buf *tbf; tbf = ath_clone_txbuf(sc, bf_last); + if (!tbf) + break; ath9k_hw_cleartxdesc(sc->sc_ah, tbf->bf_desc); list_add_tail(&tbf->list, &bf_head); } else { -- 1.5.5.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-06-10 12:26 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-06-10 12:20 [PATCH 0/3] Few clean ups Vasanthakumar Thiagarajan 2009-06-10 12:20 ` [PATCH 1/3] ath9k: Nuke unneccesary helper function to see if aggr is active Vasanthakumar Thiagarajan 2009-06-10 12:20 ` [PATCH 2/3] ath9k: Remove unnecessary count for addba attempt Vasanthakumar Thiagarajan 2009-06-10 12:20 ` [PATCH 3/3] ath9k: downgrade ASSERT() in ath_clone_txbuf() Vasanthakumar Thiagarajan
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).