aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/ath/ath9k/ath9k.h1
-rw-r--r--drivers/net/wireless/ath/ath9k/debug.c13
-rw-r--r--drivers/net/wireless/ath/ath9k/main.c6
3 files changed, 14 insertions, 6 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
index 4415e89bd3d9..93b45b4b3033 100644
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -253,6 +253,7 @@ struct ath_node {
253#ifdef CONFIG_ATH9K_DEBUGFS 253#ifdef CONFIG_ATH9K_DEBUGFS
254 struct list_head list; /* for sc->nodes */ 254 struct list_head list; /* for sc->nodes */
255 struct ieee80211_sta *sta; /* station struct we're part of */ 255 struct ieee80211_sta *sta; /* station struct we're part of */
256 struct ieee80211_vif *vif; /* interface with which we're associated */
256#endif 257#endif
257 struct ath_atx_tid tid[WME_NUM_TID]; 258 struct ath_atx_tid tid[WME_NUM_TID];
258 struct ath_atx_ac ac[WME_NUM_AC]; 259 struct ath_atx_ac ac[WME_NUM_AC];
diff --git a/drivers/net/wireless/ath/ath9k/debug.c b/drivers/net/wireless/ath/ath9k/debug.c
index 327aa28f6030..8e7e57ccbe9a 100644
--- a/drivers/net/wireless/ath/ath9k/debug.c
+++ b/drivers/net/wireless/ath/ath9k/debug.c
@@ -708,24 +708,29 @@ static ssize_t read_file_stations(struct file *file, char __user *user_buf,
708 708
709 len += snprintf(buf + len, size - len, 709 len += snprintf(buf + len, size - len,
710 "Stations:\n" 710 "Stations:\n"
711 " tid: addr sched paused buf_q-empty an ac\n" 711 " tid: addr sched paused buf_q-empty an ac baw\n"
712 " ac: addr sched tid_q-empty txq\n"); 712 " ac: addr sched tid_q-empty txq\n");
713 713
714 spin_lock(&sc->nodes_lock); 714 spin_lock(&sc->nodes_lock);
715 list_for_each_entry(an, &sc->nodes, list) { 715 list_for_each_entry(an, &sc->nodes, list) {
716 unsigned short ma = an->maxampdu;
717 if (ma == 0)
718 ma = 65535; /* see ath_lookup_rate */
716 len += snprintf(buf + len, size - len, 719 len += snprintf(buf + len, size - len,
717 "%pM\n", an->sta->addr); 720 "iface: %pM sta: %pM max-ampdu: %hu mpdu-density: %uus\n",
721 an->vif->addr, an->sta->addr, ma,
722 (unsigned int)(an->mpdudensity));
718 if (len >= size) 723 if (len >= size)
719 goto done; 724 goto done;
720 725
721 for (q = 0; q < WME_NUM_TID; q++) { 726 for (q = 0; q < WME_NUM_TID; q++) {
722 struct ath_atx_tid *tid = &(an->tid[q]); 727 struct ath_atx_tid *tid = &(an->tid[q]);
723 len += snprintf(buf + len, size - len, 728 len += snprintf(buf + len, size - len,
724 " tid: %p %s %s %i %p %p\n", 729 " tid: %p %s %s %i %p %p %hu\n",
725 tid, tid->sched ? "sched" : "idle", 730 tid, tid->sched ? "sched" : "idle",
726 tid->paused ? "paused" : "running", 731 tid->paused ? "paused" : "running",
727 skb_queue_empty(&tid->buf_q), 732 skb_queue_empty(&tid->buf_q),
728 tid->an, tid->ac); 733 tid->an, tid->ac, tid->baw_size);
729 if (len >= size) 734 if (len >= size)
730 goto done; 735 goto done;
731 } 736 }
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index e1e006d81f73..e43c41cff25b 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -630,7 +630,8 @@ set_timer:
630 } 630 }
631} 631}
632 632
633static void ath_node_attach(struct ath_softc *sc, struct ieee80211_sta *sta) 633static void ath_node_attach(struct ath_softc *sc, struct ieee80211_sta *sta,
634 struct ieee80211_vif *vif)
634{ 635{
635 struct ath_node *an; 636 struct ath_node *an;
636 an = (struct ath_node *)sta->drv_priv; 637 an = (struct ath_node *)sta->drv_priv;
@@ -640,6 +641,7 @@ static void ath_node_attach(struct ath_softc *sc, struct ieee80211_sta *sta)
640 list_add(&an->list, &sc->nodes); 641 list_add(&an->list, &sc->nodes);
641 spin_unlock(&sc->nodes_lock); 642 spin_unlock(&sc->nodes_lock);
642 an->sta = sta; 643 an->sta = sta;
644 an->vif = vif;
643#endif 645#endif
644 if (sc->sc_flags & SC_OP_TXAGGR) { 646 if (sc->sc_flags & SC_OP_TXAGGR) {
645 ath_tx_node_init(sc, an); 647 ath_tx_node_init(sc, an);
@@ -1800,7 +1802,7 @@ static int ath9k_sta_add(struct ieee80211_hw *hw,
1800 struct ath_node *an = (struct ath_node *) sta->drv_priv; 1802 struct ath_node *an = (struct ath_node *) sta->drv_priv;
1801 struct ieee80211_key_conf ps_key = { }; 1803 struct ieee80211_key_conf ps_key = { };
1802 1804
1803 ath_node_attach(sc, sta); 1805 ath_node_attach(sc, sta, vif);
1804 1806
1805 if (vif->type != NL80211_IFTYPE_AP && 1807 if (vif->type != NL80211_IFTYPE_AP &&
1806 vif->type != NL80211_IFTYPE_AP_VLAN) 1808 vif->type != NL80211_IFTYPE_AP_VLAN)