diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2011-11-25 14:11:48 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-11-28 14:44:31 -0500 |
commit | 264827555bff54bc2c896b51777e89bd22d01c21 (patch) | |
tree | 4af1b7a559fd140de5965515a29facb8bcbed970 /drivers | |
parent | ebfa867dd939839436fe8fed8122b9e5d30841f6 (diff) |
iwlwifi: help to debug AGG SM inconsistencies
Add more data when inconsistencies occur in the AGG state machine.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-trans-pcie.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c index 527e7957c932..2ac75427f10b 100644 --- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c +++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c | |||
@@ -1099,13 +1099,21 @@ static int iwl_trans_pcie_tx(struct iwl_trans *trans, struct sk_buff *skb, | |||
1099 | hdr->seq_ctrl = hdr->seq_ctrl & | 1099 | hdr->seq_ctrl = hdr->seq_ctrl & |
1100 | cpu_to_le16(IEEE80211_SCTL_FRAG); | 1100 | cpu_to_le16(IEEE80211_SCTL_FRAG); |
1101 | hdr->seq_ctrl |= cpu_to_le16(seq_number); | 1101 | hdr->seq_ctrl |= cpu_to_le16(seq_number); |
1102 | seq_number += 0x10; | ||
1103 | /* aggregation is on for this <sta,tid> */ | 1102 | /* aggregation is on for this <sta,tid> */ |
1104 | if (info->flags & IEEE80211_TX_CTL_AMPDU) { | 1103 | if (info->flags & IEEE80211_TX_CTL_AMPDU) { |
1105 | WARN_ON_ONCE(tid_data->agg.state != IWL_AGG_ON); | 1104 | if (WARN_ON_ONCE(tid_data->agg.state != IWL_AGG_ON)) { |
1105 | IWL_ERR(trans, "TX_CTL_AMPDU while not in AGG:" | ||
1106 | " Tx flags = 0x%08x, agg.state = %d", | ||
1107 | info->flags, tid_data->agg.state); | ||
1108 | IWL_ERR(trans, "sta_id = %d, tid = %d " | ||
1109 | "txq_id = %d, seq_num = %d", sta_id, | ||
1110 | tid, tid_data->agg.txq_id, | ||
1111 | seq_number >> 4); | ||
1112 | } | ||
1106 | txq_id = tid_data->agg.txq_id; | 1113 | txq_id = tid_data->agg.txq_id; |
1107 | is_agg = true; | 1114 | is_agg = true; |
1108 | } | 1115 | } |
1116 | seq_number += 0x10; | ||
1109 | } | 1117 | } |
1110 | 1118 | ||
1111 | /* Copy MAC header from skb into command buffer */ | 1119 | /* Copy MAC header from skb into command buffer */ |