]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commitdiff
wcn36xx: Track associated stations
authorLoic Poulain <loic.poulain@linaro.org>
Wed, 20 Jun 2018 07:57:59 +0000 (09:57 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Fri, 29 Jun 2018 11:59:07 +0000 (14:59 +0300)
Add list of associated stations(STA, AP, peer...) per vif.

Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ath/wcn36xx/main.c
drivers/net/wireless/ath/wcn36xx/wcn36xx.h

index 4648a78c4a5c25e916a4f770258a23fb36a90886..6fd0bf66da5d110ded48d6b5b1c0c7ccbc1f8f84 100644 (file)
@@ -567,6 +567,7 @@ static int wcn36xx_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
                                key_conf->keyidx,
                                key_conf->keylen,
                                key);
+
                        if ((WLAN_CIPHER_SUITE_WEP40 == key_conf->cipher) ||
                            (WLAN_CIPHER_SUITE_WEP104 == key_conf->cipher)) {
                                sta_priv->is_data_encrypted = true;
@@ -984,6 +985,7 @@ static int wcn36xx_add_interface(struct ieee80211_hw *hw,
        mutex_lock(&wcn->conf_mutex);
 
        vif_priv->bss_index = WCN36XX_HAL_BSS_INVALID_IDX;
+       INIT_LIST_HEAD(&vif_priv->sta_list);
        list_add(&vif_priv->list, &wcn->vif_list);
        wcn36xx_smd_add_sta_self(wcn, vif);
 
@@ -1005,6 +1007,8 @@ static int wcn36xx_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 
        spin_lock_init(&sta_priv->ampdu_lock);
        sta_priv->vif = vif_priv;
+       list_add(&sta_priv->list, &vif_priv->sta_list);
+
        /*
         * For STA mode HW will be configured on BSS_CHANGED_ASSOC because
         * at this stage AID is not available yet.
@@ -1032,6 +1036,7 @@ static int wcn36xx_sta_remove(struct ieee80211_hw *hw,
 
        mutex_lock(&wcn->conf_mutex);
 
+       list_del(&sta_priv->list);
        wcn36xx_smd_delete_sta(wcn, sta_priv->sta_index);
        sta_priv->vif = NULL;
 
index 11e74015c79af02d47039efd171bec340438fe4c..a58f313983b904ae65342fcfd904cf0018dfe436 100644 (file)
@@ -129,6 +129,8 @@ struct wcn36xx_vif {
        u8 self_sta_index;
        u8 self_dpu_desc_index;
        u8 self_ucast_dpu_sign;
+
+       struct list_head sta_list;
 };
 
 /**
@@ -154,6 +156,7 @@ struct wcn36xx_vif {
  * |______________|_____________|_______________|
  */
 struct wcn36xx_sta {
+       struct list_head list;
        struct wcn36xx_vif *vif;
        u16 aid;
        u16 tid;