| From 282cdb325aea4ebbc42ce753b47cc96145eb54bc Mon Sep 17 00:00:00 2001 |
| From: Johannes Berg <johannes.berg@intel.com> |
| Date: Mon, 12 Sep 2011 12:09:10 -0700 |
| Subject: iwlagn: fix command queue timeout |
| |
| From: Johannes Berg <johannes.berg@intel.com> |
| |
| commit 282cdb325aea4ebbc42ce753b47cc96145eb54bc upstream. |
| |
| If the command queue is constantly busy, |
| which can happen in P2P, the hangcheck |
| timer will frequently find a command in |
| it and will eventually reset the device |
| because nothing sets the timestamp for |
| this queue when commands are processed. |
| |
| Fix this by setting the timestamp when |
| a command completes. |
| |
| Signed-off-by: Johannes Berg <johannes.berg@intel.com> |
| Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> |
| Signed-off-by: John W. Linville <linville@tuxdriver.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/net/wireless/iwlwifi/iwl-tx.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/drivers/net/wireless/iwlwifi/iwl-tx.c |
| +++ b/drivers/net/wireless/iwlwifi/iwl-tx.c |
| @@ -802,6 +802,8 @@ void iwl_tx_cmd_complete(struct iwl_priv |
| cmd = txq->cmd[cmd_index]; |
| meta = &txq->meta[cmd_index]; |
| |
| + txq->time_stamp = jiffies; |
| + |
| iwlagn_unmap_tfd(priv, meta, &txq->tfds[index], PCI_DMA_BIDIRECTIONAL); |
| |
| /* Input error checking is done when commands are added to queue. */ |