iwlagn: add cmd queue pointer info when timeout
authorWey-Yi Guy <wey-yi.w.guy@intel.com>
Mon, 10 Oct 2011 14:26:46 +0000 (07:26 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 14 Oct 2011 18:48:08 +0000 (14:48 -0400)
When detect cmd queue time out, display the current read/write pointer

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-trans-pcie-tx.c

index ee7059d..f57b868 100644 (file)
@@ -1013,11 +1013,20 @@ static int iwl_send_cmd_sync(struct iwl_trans *trans, struct iwl_host_cmd *cmd)
                        HOST_COMPLETE_TIMEOUT);
        if (!ret) {
                if (test_bit(STATUS_HCMD_ACTIVE, &trans->shrd->status)) {
+                       struct iwl_priv *priv = priv(trans);
+                       struct iwl_tx_queue *txq =
+                               &trans_pcie->txq[priv->shrd->cmd_queue];
+                       struct iwl_queue *q = &txq->q;
+
                        IWL_ERR(trans,
                                "Error sending %s: time out after %dms.\n",
                                get_cmd_string(cmd->id),
                                jiffies_to_msecs(HOST_COMPLETE_TIMEOUT));
 
+                       IWL_ERR(trans,
+                               "Current CMD queue read_ptr %d write_ptr %d\n",
+                               q->read_ptr, q->write_ptr);
+
                        clear_bit(STATUS_HCMD_ACTIVE, &trans->shrd->status);
                        IWL_DEBUG_INFO(trans, "Clearing HCMD_ACTIVE for command"
                                 "%s\n", get_cmd_string(cmd->id));