]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - net/mac80211/spectmgmt.c
Merge tag 'mac80211-next-for-davem-2017-06-13' of git://git.kernel.org/pub/scm/linux...
[karo-tx-linux.git] / net / mac80211 / spectmgmt.c
index 0782e486fe89306c3cd73d36f1f285dee130ddba..bf8f5dcea1c4db29e97944f0aaf60c27c7ea4e56 100644 (file)
@@ -36,6 +36,8 @@ int ieee80211_parse_ch_switch_ie(struct ieee80211_sub_if_data *sdata,
        const struct ieee80211_wide_bw_chansw_ie *wide_bw_chansw_ie;
        int secondary_channel_offset = -1;
 
+       memset(csa_ie, 0, sizeof(*csa_ie));
+
        sec_chan_offs = elems->sec_chan_offs;
        wide_bw_chansw_ie = elems->wide_bw_chansw_ie;
 
@@ -76,6 +78,11 @@ int ieee80211_parse_ch_switch_ie(struct ieee80211_sub_if_data *sdata,
                csa_ie->mode = elems->mesh_chansw_params_ie->mesh_flags;
                csa_ie->pre_value = le16_to_cpu(
                                elems->mesh_chansw_params_ie->mesh_pre_value);
+
+               if (elems->mesh_chansw_params_ie->mesh_flags &
+                               WLAN_EID_CHAN_SWITCH_PARAM_REASON)
+                       csa_ie->reason_code = le16_to_cpu(
+                               elems->mesh_chansw_params_ie->mesh_reason);
        }
 
        new_freq = ieee80211_channel_to_frequency(new_chan_no, new_band);