iwlwifi: mvm: Direct multicast frames to the correct station
authorIlan Peer <ilan.peer@intel.com>
Mon, 22 Jan 2018 06:55:06 +0000 (08:55 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Fri, 2 Mar 2018 08:20:02 +0000 (10:20 +0200)
Multicast frames for NL80211_IFTYPE_AP and NL80211_IFTYPE_ADHOC were
directed to the broadcast station, however, as the broadcast station
did not have keys configured, these frames were sent unencrypted.

Fix this by using the multicast station which is the station for which
encryption keys are configured.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/tx.c

index 57ad601..af6dfce 100644 (file)
@@ -648,7 +648,11 @@ int iwl_mvm_tx_skb_non_sta(struct iwl_mvm *mvm, struct sk_buff *skb)
                if (info.control.vif->type == NL80211_IFTYPE_P2P_DEVICE ||
                    info.control.vif->type == NL80211_IFTYPE_AP ||
                    info.control.vif->type == NL80211_IFTYPE_ADHOC) {
-                       sta_id = mvmvif->bcast_sta.sta_id;
+                       if (info.control.vif->type == NL80211_IFTYPE_P2P_DEVICE)
+                               sta_id = mvmvif->bcast_sta.sta_id;
+                       else
+                               sta_id = mvmvif->mcast_sta.sta_id;
+
                        queue = iwl_mvm_get_ctrl_vif_queue(mvm, &info,
                                                           hdr->frame_control);
                        if (queue < 0)