]> git.hungrycats.org Git - linux/commitdiff
ath10k: wake up offchannel queue properly
authorMichal Kazior <michal.kazior@tieto.com>
Thu, 6 Aug 2015 12:46:54 +0000 (14:46 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 Oct 2015 21:49:29 +0000 (14:49 -0700)
commit 3a73d1a6f22bf13044056543ad43b2a304ee0022 upstream.

Once HTT Tx queue got full offchannel queue was
stopped and never woken up again. This broke, e.g.
P2P. This could be reproduced after running a lot
of traffic enough to saturate 100% of the driver
Tx queue and then trying to send offchannel
traffic.

Fixes: 96d828d45e16 ("ath10k: rework tx queue locking")
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/wireless/ath/ath10k/mac.c

index 83ced9629327d4805a55a3ab5f661049a86aacbe..fe9738d92831dd849c2353274cba8ee75fd8e2fe 100644 (file)
@@ -3003,6 +3003,8 @@ void ath10k_mac_tx_unlock(struct ath10k *ar, int reason)
                                                   IEEE80211_IFACE_ITER_RESUME_ALL,
                                                   ath10k_mac_tx_unlock_iter,
                                                   ar);
+
+       ieee80211_wake_queue(ar->hw, ar->hw->offchannel_tx_hw_queue);
 }
 
 void ath10k_mac_vif_tx_lock(struct ath10k_vif *arvif, int reason)