mac80211: fix an issue with wds links on 802.11ax devices
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
		| @@ -0,0 +1,51 @@ | |||||||
|  | From: Felix Fietkau <nbd@nbd.name> | ||||||
|  | Date: Sat, 19 Jun 2021 12:10:14 +0200 | ||||||
|  | Subject: [PATCH] mac80211: remove iwlwifi specific workaround that broke sta | ||||||
|  |  NDP tx | ||||||
|  |  | ||||||
|  | Sending nulldata packets is important for sw AP link probing and detecting | ||||||
|  | 4-address mode links. The checks that dropped these packets were apparently | ||||||
|  | added to work around an iwlwifi firmware bug with multi-TID aggregation. | ||||||
|  |  | ||||||
|  | Fixes: 41cbb0f5a295 ("mac80211: add support for HE") | ||||||
|  | Cc: stable@vger.kernel.org | ||||||
|  | Signed-off-by: Felix Fietkau <nbd@nbd.name> | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | --- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c | ||||||
|  | +++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c | ||||||
|  | @@ -1085,6 +1085,9 @@ static int iwl_mvm_tx_mpdu(struct iwl_mv | ||||||
|  |  	if (WARN_ON_ONCE(mvmsta->sta_id == IWL_MVM_INVALID_STA)) | ||||||
|  |  		return -1; | ||||||
|  |   | ||||||
|  | +	if (unlikely(ieee80211_is_any_nullfunc(fc)) && sta->he_cap.has_he) | ||||||
|  | +		return -1; | ||||||
|  | + | ||||||
|  |  	if (unlikely(ieee80211_is_probe_resp(fc))) | ||||||
|  |  		iwl_mvm_probe_resp_set_noa(mvm, skb); | ||||||
|  |   | ||||||
|  | --- a/net/mac80211/mlme.c | ||||||
|  | +++ b/net/mac80211/mlme.c | ||||||
|  | @@ -1094,11 +1094,6 @@ void ieee80211_send_nullfunc(struct ieee | ||||||
|  |  	struct ieee80211_hdr_3addr *nullfunc; | ||||||
|  |  	struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; | ||||||
|  |   | ||||||
|  | -	/* Don't send NDPs when STA is connected HE */ | ||||||
|  | -	if (sdata->vif.type == NL80211_IFTYPE_STATION && | ||||||
|  | -	    !(ifmgd->flags & IEEE80211_STA_DISABLE_HE)) | ||||||
|  | -		return; | ||||||
|  | - | ||||||
|  |  	skb = ieee80211_nullfunc_get(&local->hw, &sdata->vif, | ||||||
|  |  		!ieee80211_hw_check(&local->hw, DOESNT_SUPPORT_QOS_NDP)); | ||||||
|  |  	if (!skb) | ||||||
|  | @@ -1130,10 +1125,6 @@ static void ieee80211_send_4addr_nullfun | ||||||
|  |  	if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_STATION)) | ||||||
|  |  		return; | ||||||
|  |   | ||||||
|  | -	/* Don't send NDPs when connected HE */ | ||||||
|  | -	if (!(sdata->u.mgd.flags & IEEE80211_STA_DISABLE_HE)) | ||||||
|  | -		return; | ||||||
|  | - | ||||||
|  |  	skb = dev_alloc_skb(local->hw.extra_tx_headroom + 30); | ||||||
|  |  	if (!skb) | ||||||
|  |  		return; | ||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau