wcn36xx: Track association state
authorPontus Fuchs <pontus.fuchs@gmail.com>
Tue, 19 Apr 2016 05:00:51 +0000 (22:00 -0700)
committerKalle Valo <kvalo@qca.qualcomm.com>
Mon, 25 Apr 2016 17:37:06 +0000 (20:37 +0300)
Knowing the association state is needed for mc filtering.

Signed-off-by: Pontus Fuchs <pontus.fuchs@gmail.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/wcn36xx/main.c
drivers/net/wireless/ath/wcn36xx/wcn36xx.h

index f9c77de..253cece 100644 (file)
@@ -655,6 +655,7 @@ static void wcn36xx_bss_info_changed(struct ieee80211_hw *hw,
                                     vif->addr,
                                     bss_conf->aid);
 
+                       vif_priv->sta_assoc = true;
                        rcu_read_lock();
                        sta = ieee80211_find_sta(vif, bss_conf->bssid);
                        if (!sta) {
@@ -686,6 +687,7 @@ static void wcn36xx_bss_info_changed(struct ieee80211_hw *hw,
                                    bss_conf->bssid,
                                    vif->addr,
                                    bss_conf->aid);
+                       vif_priv->sta_assoc = false;
                        wcn36xx_smd_set_link_st(wcn,
                                                bss_conf->bssid,
                                                vif->addr,
index 54000db..7433d67 100644 (file)
@@ -128,6 +128,7 @@ struct wcn36xx_vif {
        u8 dtim_period;
        enum ani_ed_type encrypt_type;
        bool is_joining;
+       bool sta_assoc;
        struct wcn36xx_hal_mac_ssid ssid;
 
        /* Power management */