From: Mohammed Shafi Shajakhan <[email protected]>

for EDMA based chipsets there are few more errors/invalid conditions to
be handled when processing tx descriptors apart from descriptor
processing incomplete.
based on the commit dcfcbd590d91e8385eb554aaed419bdebaf4c72a
ENOENT error happened in ad-hoc mode during the invocation of
drv_last_beacon

Signed-off-by: Mohammed Shafi Shajakhan <[email protected]>
---
 drivers/net/wireless/ath/ath9k/main.c |    3 +++
 drivers/net/wireless/ath/ath9k/xmit.c |    2 +-
 2 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/main.c 
b/drivers/net/wireless/ath/ath9k/main.c
index c81304d..e5f366f 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -2341,6 +2341,9 @@ static int ath9k_tx_last_beacon(struct ieee80211_hw *hw)
                if (status == -EINPROGRESS)
                        goto skip;
 
+               if (status == -EIO || status == -ENOENT)
+                       goto skip;
+
                sc->beacon.tx_processed = true;
                sc->beacon.tx_last = !(ts.ts_status & ATH9K_TXERR_MASK);
 
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c 
b/drivers/net/wireless/ath/ath9k/xmit.c
index 3182408..8330a82 100644
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -2290,7 +2290,7 @@ void ath_tx_edma_tasklet(struct ath_softc *sc)
                        break;
 
                status = ath9k_hw_txprocdesc(ah, NULL, (void *)&ts);
-               if (status == -EINPROGRESS)
+               if (status == -EINPROGRESS || status == -ENOENT)
                        break;
                if (status == -EIO) {
                        ath_dbg(common, XMIT, "Error processing tx status\n");
-- 
1.7.0.4

_______________________________________________
ath9k-devel mailing list
[email protected]
https://lists.ath9k.org/mailman/listinfo/ath9k-devel

Reply via email to