From: Sujith Manoharan <[email protected]>

If for some reason a beacon with a new NoA is
not sent out, then reset the mgd_prepare_tx flag.
Not doing this will result in a situation where
a GO will send a new NoA when it shouldn't.

Signed-off-by: Sujith Manoharan <[email protected]>
---
 drivers/net/wireless/ath/ath9k/main.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath9k/main.c 
b/drivers/net/wireless/ath/ath9k/main.c
index e86189f..ad9a12a 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -2503,10 +2503,17 @@ static void ath9k_mgd_prepare_tx(struct ieee80211_hw 
*hw,
                init_completion(&sc->go_beacon);
 
                mutex_unlock(&sc->mutex);
+
                if (wait_for_completion_timeout(&sc->go_beacon,
-                                               timeout) == 0)
+                                               timeout) == 0) {
                        ath_dbg(common, CHAN_CTX,
                                "Failed to send new NoA\n");
+
+                       spin_lock_bh(&sc->chan_lock);
+                       sc->sched.mgd_prepare_tx = false;
+                       spin_unlock_bh(&sc->chan_lock);
+               }
+
                mutex_lock(&sc->mutex);
        }
 
-- 
2.1.3

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to