Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 98dfe980 authored by Emmanuel Grumbach's avatar Emmanuel Grumbach Committed by Wey-Yi Guy
Browse files

iwlwifi: help to debug AGG SM inconsistencies



Add more data when inconsistencies occur in the AGG state machine.

Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
parent 353d35a8
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -1099,13 +1099,21 @@ static int iwl_trans_pcie_tx(struct iwl_trans *trans, struct sk_buff *skb,
		hdr->seq_ctrl = hdr->seq_ctrl &
				cpu_to_le16(IEEE80211_SCTL_FRAG);
		hdr->seq_ctrl |= cpu_to_le16(seq_number);
		seq_number += 0x10;
		/* aggregation is on for this <sta,tid> */
		if (info->flags & IEEE80211_TX_CTL_AMPDU) {
			WARN_ON_ONCE(tid_data->agg.state != IWL_AGG_ON);
			if (WARN_ON_ONCE(tid_data->agg.state != IWL_AGG_ON)) {
				IWL_ERR(trans, "TX_CTL_AMPDU while not in AGG:"
					" Tx flags = 0x%08x, agg.state = %d",
					info->flags, tid_data->agg.state);
				IWL_ERR(trans, "sta_id = %d, tid = %d "
					"txq_id = %d, seq_num = %d", sta_id,
					tid, tid_data->agg.txq_id,
					seq_number >> 4);
			}
			txq_id = tid_data->agg.txq_id;
			is_agg = true;
		}
		seq_number += 0x10;
	}

	/* Copy MAC header from skb into command buffer */