diff options
author | Ben Greear <greearb@candelatech.com> | 2011-01-10 02:11:50 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-01-21 15:32:22 -0500 |
commit | 71e025a5a630681ad8b37d4426a994d199976ec9 (patch) | |
tree | 0a7533a92162e89fff2cc8bffda64d277acc5ea4 /drivers/net/wireless/ath/ath9k/debug.c | |
parent | 7f010c93d73847ffc6b74b572fef9a63e305d65e (diff) |
ath9k: More xmit queue debugfs information.
To try to figure out why xmit logic hangs.
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/debug.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/debug.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/debug.c b/drivers/net/wireless/ath/ath9k/debug.c index 650f00f59d79..9e009ccd0069 100644 --- a/drivers/net/wireless/ath/ath9k/debug.c +++ b/drivers/net/wireless/ath/ath9k/debug.c | |||
@@ -679,6 +679,32 @@ static ssize_t read_file_xmit(struct file *file, char __user *user_buf, | |||
679 | PRQLE(tmp, txq_fifo[i]); | 679 | PRQLE(tmp, txq_fifo[i]); |
680 | } | 680 | } |
681 | 681 | ||
682 | /* Print out more detailed queue-info */ | ||
683 | for (i = 0; i <= WME_AC_BK; i++) { | ||
684 | struct ath_txq *txq = &(sc->tx.txq[i]); | ||
685 | struct ath_atx_ac *ac; | ||
686 | struct ath_atx_tid *tid; | ||
687 | if (len >= size) | ||
688 | goto done; | ||
689 | spin_lock_bh(&txq->axq_lock); | ||
690 | if (!list_empty(&txq->axq_acq)) { | ||
691 | ac = list_first_entry(&txq->axq_acq, struct ath_atx_ac, | ||
692 | list); | ||
693 | len += snprintf(buf + len, size - len, | ||
694 | "txq[%i] first-ac: %p sched: %i\n", | ||
695 | i, ac, ac->sched); | ||
696 | if (list_empty(&ac->tid_q) || (len >= size)) | ||
697 | goto done_for; | ||
698 | tid = list_first_entry(&ac->tid_q, struct ath_atx_tid, | ||
699 | list); | ||
700 | len += snprintf(buf + len, size - len, | ||
701 | " first-tid: %p sched: %i paused: %i\n", | ||
702 | tid, tid->sched, tid->paused); | ||
703 | } | ||
704 | done_for: | ||
705 | spin_unlock_bh(&txq->axq_lock); | ||
706 | } | ||
707 | |||
682 | done: | 708 | done: |
683 | if (len > size) | 709 | if (len > size) |
684 | len = size; | 710 | len = size; |