]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - net/mac80211/mlme.c
nl80211: Add support for EDMG channels
[linux.git] / net / mac80211 / mlme.c
index 4c888dc9bd8133eb0025ae919aa98ab002904740..6471f552a94275291adad3f8b0fe4dcee4fac0b2 100644 (file)
@@ -158,10 +158,10 @@ ieee80211_determine_chantype(struct ieee80211_sub_if_data *sdata,
        memcpy(&sta_ht_cap, &sband->ht_cap, sizeof(sta_ht_cap));
        ieee80211_apply_htcap_overrides(sdata, &sta_ht_cap);
 
+       memset(chandef, 0, sizeof(struct cfg80211_chan_def));
        chandef->chan = channel;
        chandef->width = NL80211_CHAN_WIDTH_20_NOHT;
        chandef->center_freq1 = channel->center_freq;
-       chandef->center_freq2 = 0;
 
        if (!ht_oper || !sta_ht_cap.ht_supported) {
                ret = IEEE80211_STA_DISABLE_HT | IEEE80211_STA_DISABLE_VHT;
@@ -2522,7 +2522,10 @@ static void ieee80211_mgd_probe_ap_send(struct ieee80211_sub_if_data *sdata)
 
        if (ieee80211_hw_check(&sdata->local->hw, REPORTS_TX_ACK_STATUS)) {
                ifmgd->nullfunc_failed = false;
-               ieee80211_send_nullfunc(sdata->local, sdata, false);
+               if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HE))
+                       ifmgd->probe_send_count--;
+               else
+                       ieee80211_send_nullfunc(sdata->local, sdata, false);
        } else {
                int ssid_len;
 
@@ -3391,6 +3394,8 @@ static bool ieee80211_assoc_success(struct ieee80211_sub_if_data *sdata,
                if (elems.uora_element)
                        bss_conf->uora_ocw_range = elems.uora_element[0];
 
+               ieee80211_he_op_ie_to_bss_conf(&sdata->vif, elems.he_operation);
+               ieee80211_he_spr_ie_to_bss_conf(&sdata->vif, elems.he_spr);
                /* TODO: OPEN: what happens if BSS color disable is set? */
        }