aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2013-06-13 06:10:00 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-07-21 21:21:30 -0400
commitd26cb648c5bf93d2e17b54d3dd55523e68d625ce (patch)
tree9c7b3a5ec3c4c5a59ee2a154974bd87167a41b6c /drivers/net/wireless
parentf4ab9ece03dfc4b15c63b5fd5506183554976903 (diff)
iwlwifi: pcie: wake the queue if stopped when being unmapped
commit 8a487b1a7432b20ff3f82387a8ce7555a964b44e upstream. When the queue is unmapped while it was so loaded that mac80211's was stopped, we need to wake the queue after having freed all the packets in the queue. Not doing so can result in weird stuff like: * run lots of traffic (mac80211's queue gets stopped) * RFKILL * de-assert RFKILL * no traffic Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/iwlwifi/pcie/tx.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/pcie/tx.c b/drivers/net/wireless/iwlwifi/pcie/tx.c
index 51fca425def7..48acfc620191 100644
--- a/drivers/net/wireless/iwlwifi/pcie/tx.c
+++ b/drivers/net/wireless/iwlwifi/pcie/tx.c
@@ -583,6 +583,9 @@ static void iwl_pcie_txq_unmap(struct iwl_trans *trans, int txq_id)
583 } 583 }
584 txq->active = false; 584 txq->active = false;
585 spin_unlock_bh(&txq->lock); 585 spin_unlock_bh(&txq->lock);
586
587 /* just in case - this queue may have been stopped */
588 iwl_wake_queue(trans, txq);
586} 589}
587 590
588/* 591/*