Commit 7d577d76 authored by Gregory Greenman's avatar Gregory Greenman
Browse files

wifi: iwlwifi: mvm: always send nullfunc frames on MGMT queue

Non-QOS nullfunc frames should be sent on MGMT queue similarly to
the QOS nullfunc frames. It means that the corresponding TID should
remain IWL_MAX_TID_COUNT. Make the condition more strict, so the TID
won't be changed to IWL_TID_NON_QOS.

Link: https://lore.kernel.org/r/20230127002430.a05bf77c9e29.I06262424878232b46fecd58743c889e4c3216bbf@changeid


Signed-off-by: default avatarGregory Greenman <gregory.greenman@intel.com>
parent 4de5ceef
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -1107,8 +1107,8 @@ static int iwl_mvm_tx_mpdu(struct iwl_mvm *mvm, struct sk_buff *skb,
	spin_lock(&mvmsta->lock);

	/* nullfunc frames should go to the MGMT queue regardless of QOS,
	 * the condition of !ieee80211_is_qos_nullfunc(fc) keeps the default
	 * assignment of MGMT TID
	 * the conditions of !ieee80211_is_qos_nullfunc(fc) and
	 * !ieee80211_is_data_qos(fc) keep the default assignment of MGMT TID
	 */
	if (ieee80211_is_data_qos(fc) && !ieee80211_is_qos_nullfunc(fc)) {
		tid = ieee80211_get_tid(hdr);
@@ -1133,7 +1133,8 @@ static int iwl_mvm_tx_mpdu(struct iwl_mvm *mvm, struct sk_buff *skb,
			/* update the tx_cmd hdr as it was already copied */
			tx_cmd->hdr->seq_ctrl = hdr->seq_ctrl;
		}
	} else if (ieee80211_is_data(fc) && !ieee80211_is_data_qos(fc)) {
	} else if (ieee80211_is_data(fc) && !ieee80211_is_data_qos(fc) &&
		   !ieee80211_is_nullfunc(fc)) {
		tid = IWL_TID_NON_QOS;
	}