From: Emmanuel Grumbach Date: Thu, 13 Jun 2013 10:10:00 +0000 (+0300) Subject: iwlwifi: pcie: wake the queue if stopped when being unmapped X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=8a487b1a7432b20ff3f82387a8ce7555a964b44e;p=openwrt%2Fstaging%2Fblogic.git 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 Signed-off-by: Johannes Berg --- 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) } txq->active = false; spin_unlock_bh(&txq->lock); + + /* just in case - this queue may have been stopped */ + iwl_wake_queue(trans, txq); } /*