Add neighbor linked list used by estimation algorithm to compute maximum sta
ack timeout

Signed-off-by: Lorenzo Bianconi <lorenzo.biancon...@gmail.com>
---
 drivers/net/wireless/ath/ath9k/main.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/net/wireless/ath/ath9k/main.c 
b/drivers/net/wireless/ath/ath9k/main.c
index 5d8af08..ee07776 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -350,6 +350,7 @@ static void ath_node_attach(struct ath_softc *sc, struct 
ieee80211_sta *sta,
                            struct ieee80211_vif *vif)
 {
        struct ath_node *an;
+       struct ath_dynack *da = &sc->sc_ah->dynack;
        an = (struct ath_node *)sta->drv_priv;
 
        an->sc = sc;
@@ -358,12 +359,21 @@ static void ath_node_attach(struct ath_softc *sc, struct 
ieee80211_sta *sta,
        memset(&an->key_idx, 0, sizeof(an->key_idx));
 
        ath_tx_node_init(sc, an);
+
+       spin_lock(&da->qlock);
+       list_add_tail(&an->list, &da->nodes);
+       spin_unlock(&da->qlock);
 }
 
 static void ath_node_detach(struct ath_softc *sc, struct ieee80211_sta *sta)
 {
        struct ath_node *an = (struct ath_node *)sta->drv_priv;
+       struct ath_dynack *da = &sc->sc_ah->dynack;
        ath_tx_node_cleanup(sc, an);
+
+       spin_lock(&da->qlock);
+       list_del(&an->list);
+       spin_unlock(&da->qlock);
 }
 
 void ath9k_tasklet(unsigned long data)
-- 
1.9.1

_______________________________________________
ath9k-devel mailing list
ath9k-devel@lists.ath9k.org
https://lists.ath9k.org/mailman/listinfo/ath9k-devel

Reply via email to