mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
wcn36xx: Track associated stations
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>
This commit is contained in:
parent
10db60b9fa
commit
e3160542ab
@ -567,6 +567,7 @@ static int wcn36xx_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
|
|||||||
key_conf->keyidx,
|
key_conf->keyidx,
|
||||||
key_conf->keylen,
|
key_conf->keylen,
|
||||||
key);
|
key);
|
||||||
|
|
||||||
if ((WLAN_CIPHER_SUITE_WEP40 == key_conf->cipher) ||
|
if ((WLAN_CIPHER_SUITE_WEP40 == key_conf->cipher) ||
|
||||||
(WLAN_CIPHER_SUITE_WEP104 == key_conf->cipher)) {
|
(WLAN_CIPHER_SUITE_WEP104 == key_conf->cipher)) {
|
||||||
sta_priv->is_data_encrypted = true;
|
sta_priv->is_data_encrypted = true;
|
||||||
@ -984,6 +985,7 @@ static int wcn36xx_add_interface(struct ieee80211_hw *hw,
|
|||||||
mutex_lock(&wcn->conf_mutex);
|
mutex_lock(&wcn->conf_mutex);
|
||||||
|
|
||||||
vif_priv->bss_index = WCN36XX_HAL_BSS_INVALID_IDX;
|
vif_priv->bss_index = WCN36XX_HAL_BSS_INVALID_IDX;
|
||||||
|
INIT_LIST_HEAD(&vif_priv->sta_list);
|
||||||
list_add(&vif_priv->list, &wcn->vif_list);
|
list_add(&vif_priv->list, &wcn->vif_list);
|
||||||
wcn36xx_smd_add_sta_self(wcn, vif);
|
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);
|
spin_lock_init(&sta_priv->ampdu_lock);
|
||||||
sta_priv->vif = vif_priv;
|
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
|
* For STA mode HW will be configured on BSS_CHANGED_ASSOC because
|
||||||
* at this stage AID is not available yet.
|
* 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);
|
mutex_lock(&wcn->conf_mutex);
|
||||||
|
|
||||||
|
list_del(&sta_priv->list);
|
||||||
wcn36xx_smd_delete_sta(wcn, sta_priv->sta_index);
|
wcn36xx_smd_delete_sta(wcn, sta_priv->sta_index);
|
||||||
sta_priv->vif = NULL;
|
sta_priv->vif = NULL;
|
||||||
|
|
||||||
|
@ -129,6 +129,8 @@ struct wcn36xx_vif {
|
|||||||
u8 self_sta_index;
|
u8 self_sta_index;
|
||||||
u8 self_dpu_desc_index;
|
u8 self_dpu_desc_index;
|
||||||
u8 self_ucast_dpu_sign;
|
u8 self_ucast_dpu_sign;
|
||||||
|
|
||||||
|
struct list_head sta_list;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -154,6 +156,7 @@ struct wcn36xx_vif {
|
|||||||
* |______________|_____________|_______________|
|
* |______________|_____________|_______________|
|
||||||
*/
|
*/
|
||||||
struct wcn36xx_sta {
|
struct wcn36xx_sta {
|
||||||
|
struct list_head list;
|
||||||
struct wcn36xx_vif *vif;
|
struct wcn36xx_vif *vif;
|
||||||
u16 aid;
|
u16 aid;
|
||||||
u16 tid;
|
u16 tid;
|
||||||
|
Loading…
Reference in New Issue
Block a user