ath10k: wake up offchannel queue properly
authorMichal Kazior <michal.kazior@tieto.com>
Thu, 6 Aug 2015 12:46:54 +0000 (14:46 +0200)
committerKalle Valo <kvalo@qca.qualcomm.com>
Mon, 17 Aug 2015 13:37:42 +0000 (16:37 +0300)
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>
drivers/net/wireless/ath/ath10k/mac.c

index 96f4285e93b8dd9d34d2e47d2e5975f9c040d1e9..ed2e8b67d95dd6970ff7d07c3a17136157b2dae4 100644 (file)
@@ -2999,6 +2999,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)