From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date: Sun, 10 Jun 2012 15:25:09 +0000 (+0300)
Subject: iwlwifi: don't modify the timer if we don't Tx
X-Git-Tag: firefly_0821_release~3680^2~2381^2~57^2~321
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=49a4fc20df7fced31ffe4038b32b86a0438d1c27;p=firefly-linux-kernel-4.4.55.git

iwlwifi: don't modify the timer if we don't Tx

In fragmentation we don't update the write pointer of the
HW immediately. So we shouldn't modify the timer in that
case.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---

diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c
index d6a73179ebf1..b647eb4dca64 100644
--- a/drivers/net/wireless/iwlwifi/pcie/trans.c
+++ b/drivers/net/wireless/iwlwifi/pcie/trans.c
@@ -1354,7 +1354,8 @@ static int iwl_trans_pcie_tx(struct iwl_trans *trans, struct sk_buff *skb,
 			     skb->data + hdr_len, secondlen);
 
 	/* start timer if queue currently empty */
-	if (q->read_ptr == q->write_ptr && trans_pcie->wd_timeout)
+	if (txq->need_update && q->read_ptr == q->write_ptr &&
+	    trans_pcie->wd_timeout)
 		mod_timer(&txq->stuck_timer, jiffies + trans_pcie->wd_timeout);
 
 	/* Tell device the write index *just past* this latest filled TFD */