summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/pcie
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2013-06-13 13:10:00 +0300
committerJohannes Berg <johannes.berg@intel.com>2013-06-13 16:44:04 +0200
commit8a487b1a7432b20ff3f82387a8ce7555a964b44e (patch)
treeff8be11878f0c82434484e8a399757e0d8e2061d /drivers/net/wireless/iwlwifi/pcie
parentb967613d7e7c7bad176f5627c55e2d8c5aa2480e (diff)
downloadop-kernel-dev-8a487b1a7432b20ff3f82387a8ce7555a964b44e.zip
op-kernel-dev-8a487b1a7432b20ff3f82387a8ce7555a964b44e.tar.gz
iwlwifi: pcie: wake the queue if stopped when being unmapped
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 Cc: stable@vger.kernel.org Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/pcie')
-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 51fca42..48acfc6 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)
}
txq->active = false;
spin_unlock_bh(&txq->lock);
+
+ /* just in case - this queue may have been stopped */
+ iwl_wake_queue(trans, txq);
}
/*
OpenPOWER on IntegriCloud