diff options
author | Ben Greear <greearb@candelatech.com> | 2011-01-10 02:11:49 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-01-21 15:32:22 -0500 |
commit | 7f010c93d73847ffc6b74b572fef9a63e305d65e (patch) | |
tree | 9ed4a9cb46b55995b415f255fc83da7f4e4a95f8 /drivers/net/wireless/ath/ath9k/main.c | |
parent | bda8addaed08834956d5695212717893a2e0cb13 (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.c | 13 |
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 | } |