wifi: iwlwifi: mvm: use the correct link queue
authorShaul Triebitz <shaul.triebitz@intel.com>
Wed, 29 Mar 2023 07:05:32 +0000 (10:05 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 30 Mar 2023 10:08:42 +0000 (12:08 +0200)
For bcase/mcast tx frames use the link queue.

Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230329100040.ccd7218e4be2.I40f608a0441190cc26137b039f7cb7b065fd4e0c@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/tx.c

index ca1284f11f8b363e070c19a83b007acbf5b97431..f5b92d99f39d41a18101811c8fde4af49e0c191d 100644 (file)
@@ -604,11 +604,10 @@ static void iwl_mvm_skb_prepare_status(struct sk_buff *skb,
 }
 
 static int iwl_mvm_get_ctrl_vif_queue(struct iwl_mvm *mvm,
+                                     struct iwl_mvm_vif_link_info *link,
                                      struct ieee80211_tx_info *info,
                                      struct ieee80211_hdr *hdr)
 {
-       struct iwl_mvm_vif *mvmvif =
-               iwl_mvm_vif_from_mac80211(info->control.vif);
        __le16 fc = hdr->frame_control;
 
        switch (info->control.vif->type) {
@@ -631,7 +630,7 @@ static int iwl_mvm_get_ctrl_vif_queue(struct iwl_mvm *mvm,
 
                if (!ieee80211_has_order(fc) && !ieee80211_is_probe_req(fc) &&
                    is_multicast_ether_addr(hdr->addr1))
-                       return mvmvif->deflink.cab_queue;
+                       return link->cab_queue;
 
                WARN_ONCE(info->control.vif->type != NL80211_IFTYPE_ADHOC,
                          "fc=0x%02x", le16_to_cpu(fc));
@@ -757,7 +756,8 @@ int iwl_mvm_tx_skb_non_sta(struct iwl_mvm *mvm, struct sk_buff *skb)
                        else
                                sta_id = link->mcast_sta.sta_id;
 
-                       queue = iwl_mvm_get_ctrl_vif_queue(mvm, &info, hdr);
+                       queue = iwl_mvm_get_ctrl_vif_queue(mvm, link, &info,
+                                                          hdr);
                } else if (info.control.vif->type == NL80211_IFTYPE_MONITOR) {
                        queue = mvm->snif_queue;
                        sta_id = mvm->snif_sta.sta_id;