The ssid info of ieee80211_bss_conf is filled in ieee80211_start_ap()
for AP mode. For STATION mode, it is empty, save the info from struct
ieee80211_mgd_assoc_data, the struct ieee80211_mgd_assoc_data will be
freed after assoc, so the ssid info of ieee80211_mgd_assoc_data can not
access after assoc, save ssid info to ieee80211_bss_conf, then ssid info
can be still access after assoc.

Signed-off-by: Wen Gong <wg...@codeaurora.org>
---
 net/mac80211/mlme.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index ac870309b911..f3b3cba02be2 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -5364,6 +5364,7 @@ int ieee80211_mgd_assoc(struct ieee80211_sub_if_data 
*sdata,
        struct ieee80211_mgd_assoc_data *assoc_data;
        const struct cfg80211_bss_ies *beacon_ies;
        struct ieee80211_supported_band *sband;
+       struct ieee80211_bss_conf *bss_conf = &sdata->vif.bss_conf;
        const u8 *ssidie, *ht_ie, *vht_ie;
        int i, err;
        bool override = false;
@@ -5381,6 +5382,8 @@ int ieee80211_mgd_assoc(struct ieee80211_sub_if_data 
*sdata,
        }
        memcpy(assoc_data->ssid, ssidie + 2, ssidie[1]);
        assoc_data->ssid_len = ssidie[1];
+       memcpy(bss_conf->ssid, assoc_data->ssid, assoc_data->ssid_len);
+       bss_conf->ssid_len = assoc_data->ssid_len;
        rcu_read_unlock();
 
        if (ifmgd->associated) {
-- 
2.23.0


_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

Reply via email to