Thread (14 messages) 14 messages, 4 authors, 2011-08-30

Re: [PATCH v7 2/4] ath9k: always call ath_reset from workqueue context

From: Mohammed Shafi <hidden>
Date: 2011-08-30 06:20:54

On Tue, Aug 30, 2011 at 11:39 AM, Felix Fietkau [off-list ref] wrote:
On 2011-08-30 7:57 AM, Mohammed Shafi wrote:
quoted
On Tue, Aug 30, 2011 at 12:10 AM, Felix Fietkau[off-list ref]  wrote:
quoted
 This makes it much easier to add further rework to avoid race conditions
 between reset and other work items.
 Move other functions to make ath_reset static.

 Signed-off-by: Felix Fietkau[off-list ref]
 ---
  drivers/net/wireless/ath/ath9k/ath9k.h  |    3 +-
  drivers/net/wireless/ath/ath9k/beacon.c |    4 +-
  drivers/net/wireless/ath/ath9k/init.c   |    1 +
  drivers/net/wireless/ath/ath9k/main.c   |  152
++++++++++++++++---------------
  drivers/net/wireless/ath/ath9k/xmit.c   |    6 +-
  5 files changed, 86 insertions(+), 80 deletions(-)

 diff --git a/drivers/net/wireless/ath/ath9k/xmit.c
b/drivers/net/wireless/ath/ath9k/xmit.c
 index 49b93c2..f60706b 100644
 --- a/drivers/net/wireless/ath/ath9k/xmit.c
 +++ b/drivers/net/wireless/ath/ath9k/xmit.c
 @@ -582,7 +582,7 @@ static void ath_tx_complete_aggr(struct ath_softc
*sc, struct ath_txq *txq,
        rcu_read_unlock();

        if (needreset)
 -               ath_reset(sc, false);
 +               ieee80211_queue_work(sc->hw,&sc->hw_reset_work);
Hi Felix,

retry_tx is set to 'false' in ath_reset here, but ath_reset_work
always has it true. had i missed some thing?
Since the reset work is deferred now, it can be allowed to retry tx now
instead of dropping all packets in the queue.
oh ok, in this path we need reset when the chip becomes deaf/mute(as
mentioned  in the comment),
so i am not sure retrying tx will help rather than doing immediate
reset of the chip.
thanks.
- Felix


-- 
shafi
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help