aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/main.c
diff options
context:
space:
mode:
authorBen Greear <greearb@candelatech.com>2011-01-10 02:11:49 -0500
committerJohn W. Linville <linville@tuxdriver.com>2011-01-21 15:32:22 -0500
commit7f010c93d73847ffc6b74b572fef9a63e305d65e (patch)
tree9ed4a9cb46b55995b415f255fc83da7f4e4a95f8 /drivers/net/wireless/ath/ath9k/main.c
parentbda8addaed08834956d5695212717893a2e0cb13 (diff)
ath9k: Keep track of stations for debugfs.
The stations hold the ath_node, which holds the tid and other xmit logic structures. In order to debug stuck xmit logic, we need a way to print out the tid state for the stations. Signed-off-by: Ben Greear <greearb@candelatech.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/main.c')
-rw-r--r--drivers/net/wireless/ath/ath9k/main.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index c03184e7bffe..bed6eb97fac9 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -548,6 +548,12 @@ static void ath_node_attach(struct ath_softc *sc, struct ieee80211_sta *sta)
548 struct ath_hw *ah = sc->sc_ah; 548 struct ath_hw *ah = sc->sc_ah;
549 an = (struct ath_node *)sta->drv_priv; 549 an = (struct ath_node *)sta->drv_priv;
550 550
551#ifdef CONFIG_ATH9K_DEBUGFS
552 spin_lock(&sc->nodes_lock);
553 list_add(&an->list, &sc->nodes);
554 spin_unlock(&sc->nodes_lock);
555 an->sta = sta;
556#endif
551 if ((ah->caps.hw_caps) & ATH9K_HW_CAP_APM) 557 if ((ah->caps.hw_caps) & ATH9K_HW_CAP_APM)
552 sc->sc_flags |= SC_OP_ENABLE_APM; 558 sc->sc_flags |= SC_OP_ENABLE_APM;
553 559
@@ -563,6 +569,13 @@ static void ath_node_detach(struct ath_softc *sc, struct ieee80211_sta *sta)
563{ 569{
564 struct ath_node *an = (struct ath_node *)sta->drv_priv; 570 struct ath_node *an = (struct ath_node *)sta->drv_priv;
565 571
572#ifdef CONFIG_ATH9K_DEBUGFS
573 spin_lock(&sc->nodes_lock);
574 list_del(&an->list);
575 spin_unlock(&sc->nodes_lock);
576 an->sta = NULL;
577#endif
578
566 if (sc->sc_flags & SC_OP_TXAGGR) 579 if (sc->sc_flags & SC_OP_TXAGGR)
567 ath_tx_node_cleanup(sc, an); 580 ath_tx_node_cleanup(sc, an);
568} 581}