iwlwifi: mvm: treat MMPDUs in iwl_mvm_mac_tx() as bcast
authorJohannes Berg <johannes.berg@intel.com>
Mon, 2 Aug 2021 14:28:29 +0000 (17:28 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Thu, 26 Aug 2021 20:33:25 +0000 (23:33 +0300)
There's no need for all the complicated conditions here, any
bufferable MMPDUs or MMPDUs for client interfaces are already
coming through the TXQ interface, not iwl_mvm_mac_tx().

Simplify the logic.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20210802172232.3939f7c5c43a.I1d5cb5262e31a000023d79acbb897b8db50adf0d@changeid
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c

index f38d247..c60c0b4 100644 (file)
@@ -762,11 +762,11 @@ static void iwl_mvm_mac_tx(struct ieee80211_hw *hw,
            !test_bit(IWL_MVM_STATUS_ROC_AUX_RUNNING, &mvm->status))
                goto drop;
 
-       /* treat non-bufferable MMPDUs on AP interfaces as broadcast */
-       if ((info->control.vif->type == NL80211_IFTYPE_AP ||
-            info->control.vif->type == NL80211_IFTYPE_ADHOC) &&
-           ieee80211_is_mgmt(hdr->frame_control) &&
-           !ieee80211_is_bufferable_mmpdu(hdr->frame_control))
+       /*
+        * bufferable MMPDUs or MMPDUs on STA interfaces come via TXQs
+        * so we treat the others as broadcast
+        */
+       if (ieee80211_is_mgmt(hdr->frame_control))
                sta = NULL;
 
        /* If there is no sta, and it's not offchannel - send through AP */