diff options
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r-- | net/mac80211/mlme.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 6c9ebca02394..61604834b914 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -756,6 +756,34 @@ static void ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata) | |||
756 | ieee80211_add_ht_ie(sdata, skb, assoc_data->ap_ht_param, | 756 | ieee80211_add_ht_ie(sdata, skb, assoc_data->ap_ht_param, |
757 | sband, chan, sdata->smps_mode); | 757 | sband, chan, sdata->smps_mode); |
758 | 758 | ||
759 | /* if present, add any custom IEs that go before VHT */ | ||
760 | if (assoc_data->ie_len) { | ||
761 | static const u8 before_vht[] = { | ||
762 | WLAN_EID_SSID, | ||
763 | WLAN_EID_SUPP_RATES, | ||
764 | WLAN_EID_EXT_SUPP_RATES, | ||
765 | WLAN_EID_PWR_CAPABILITY, | ||
766 | WLAN_EID_SUPPORTED_CHANNELS, | ||
767 | WLAN_EID_RSN, | ||
768 | WLAN_EID_QOS_CAPA, | ||
769 | WLAN_EID_RRM_ENABLED_CAPABILITIES, | ||
770 | WLAN_EID_MOBILITY_DOMAIN, | ||
771 | WLAN_EID_SUPPORTED_REGULATORY_CLASSES, | ||
772 | WLAN_EID_HT_CAPABILITY, | ||
773 | WLAN_EID_BSS_COEX_2040, | ||
774 | WLAN_EID_EXT_CAPABILITY, | ||
775 | WLAN_EID_QOS_TRAFFIC_CAPA, | ||
776 | WLAN_EID_TIM_BCAST_REQ, | ||
777 | WLAN_EID_INTERWORKING, | ||
778 | }; | ||
779 | noffset = ieee80211_ie_split(assoc_data->ie, assoc_data->ie_len, | ||
780 | before_vht, ARRAY_SIZE(before_vht), | ||
781 | offset); | ||
782 | pos = skb_put(skb, noffset - offset); | ||
783 | memcpy(pos, assoc_data->ie + offset, noffset - offset); | ||
784 | offset = noffset; | ||
785 | } | ||
786 | |||
759 | if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) | 787 | if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) |
760 | ieee80211_add_vht_ie(sdata, skb, sband, | 788 | ieee80211_add_vht_ie(sdata, skb, sband, |
761 | &assoc_data->ap_vht_cap); | 789 | &assoc_data->ap_vht_cap); |