lkml.org 
[lkml]   [2010]   [Jan]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 47/97] ath9k: Fix TX queue draining
    Date
    From: Sujith <Sujith.Manoharan@atheros.com>

    commit e8009e9850d59000d518296af372888911a129bd upstream.

    When TX DMA termination has failed, the HW has to be reset
    completely. Doing a fast channel change in this case is insufficient.
    Also, change the debug level of a couple of messages to FATAL.

    Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    ---
    drivers/net/wireless/ath/ath9k/mac.c | 2 +-
    drivers/net/wireless/ath/ath9k/xmit.c | 4 ++--
    2 files changed, 3 insertions(+), 3 deletions(-)

    diff --git a/drivers/net/wireless/ath/ath9k/mac.c b/drivers/net/wireless/ath/ath9k/mac.c
    index d4d9d82..110c16d 100644
    --- a/drivers/net/wireless/ath/ath9k/mac.c
    +++ b/drivers/net/wireless/ath/ath9k/mac.c
    @@ -155,7 +155,7 @@ bool ath9k_hw_stoptxdma(struct ath_hw *ah, u32 q)
    wait = wait_time;
    while (ath9k_hw_numtxpending(ah, q)) {
    if ((--wait) == 0) {
    - DPRINTF(ah->ah_sc, ATH_DBG_QUEUE,
    + DPRINTF(ah->ah_sc, ATH_DBG_FATAL,
    "Failed to stop TX DMA in 100 "
    "msec after killing last frame\n");
    break;
    diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
    index 4753909..2e0b86b 100644
    --- a/drivers/net/wireless/ath/ath9k/xmit.c
    +++ b/drivers/net/wireless/ath/ath9k/xmit.c
    @@ -1076,10 +1076,10 @@ void ath_drain_all_txq(struct ath_softc *sc, bool retry_tx)
    if (npend) {
    int r;

    - DPRINTF(sc, ATH_DBG_XMIT, "Unable to stop TxDMA. Reset HAL!\n");
    + DPRINTF(sc, ATH_DBG_FATAL, "Unable to stop TxDMA. Reset HAL!\n");

    spin_lock_bh(&sc->sc_resetlock);
    - r = ath9k_hw_reset(ah, sc->sc_ah->curchan, true);
    + r = ath9k_hw_reset(ah, sc->sc_ah->curchan, false);
    if (r)
    DPRINTF(sc, ATH_DBG_FATAL,
    "Unable to reset hardware; reset status %d\n",
    --
    1.6.6


    \
     
     \ /
      Last update: 2010-01-05 01:51    [W:0.043 / U:0.240 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site