diff options
Diffstat (limited to 'drivers/net/wireless/iwmc3200wifi/debugfs.c')
-rw-r--r-- | drivers/net/wireless/iwmc3200wifi/debugfs.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwmc3200wifi/debugfs.c b/drivers/net/wireless/iwmc3200wifi/debugfs.c index 1465379f900a..cbb81befdb55 100644 --- a/drivers/net/wireless/iwmc3200wifi/debugfs.c +++ b/drivers/net/wireless/iwmc3200wifi/debugfs.c | |||
@@ -21,6 +21,7 @@ | |||
21 | * | 21 | * |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <linux/slab.h> | ||
24 | #include <linux/kernel.h> | 25 | #include <linux/kernel.h> |
25 | #include <linux/bitops.h> | 26 | #include <linux/bitops.h> |
26 | #include <linux/debugfs.h> | 27 | #include <linux/debugfs.h> |
@@ -89,7 +90,7 @@ static int iwm_debugfs_dbg_modules_write(void *data, u64 val) | |||
89 | for (i = 0; i < __IWM_DM_NR; i++) | 90 | for (i = 0; i < __IWM_DM_NR; i++) |
90 | iwm->dbg.dbg_module[i] = 0; | 91 | iwm->dbg.dbg_module[i] = 0; |
91 | 92 | ||
92 | for_each_bit(bit, &iwm->dbg.dbg_modules, __IWM_DM_NR) | 93 | for_each_set_bit(bit, &iwm->dbg.dbg_modules, __IWM_DM_NR) |
93 | iwm->dbg.dbg_module[bit] = iwm->dbg.dbg_level; | 94 | iwm->dbg.dbg_module[bit] = iwm->dbg.dbg_level; |
94 | 95 | ||
95 | return 0; | 96 | return 0; |
@@ -158,6 +159,29 @@ static ssize_t iwm_debugfs_txq_read(struct file *filp, char __user *buffer, | |||
158 | } | 159 | } |
159 | 160 | ||
160 | spin_unlock_irqrestore(&txq->queue.lock, flags); | 161 | spin_unlock_irqrestore(&txq->queue.lock, flags); |
162 | |||
163 | spin_lock_irqsave(&txq->stopped_queue.lock, flags); | ||
164 | |||
165 | len += snprintf(buf + len, buf_len - len, | ||
166 | "\tStopped Queue len: %d\n", | ||
167 | skb_queue_len(&txq->stopped_queue)); | ||
168 | for (j = 0; j < skb_queue_len(&txq->stopped_queue); j++) { | ||
169 | struct iwm_tx_info *tx_info; | ||
170 | |||
171 | skb = skb->next; | ||
172 | tx_info = skb_to_tx_info(skb); | ||
173 | |||
174 | len += snprintf(buf + len, buf_len - len, | ||
175 | "\tSKB #%d\n", j); | ||
176 | len += snprintf(buf + len, buf_len - len, | ||
177 | "\t\tsta: %d\n", tx_info->sta); | ||
178 | len += snprintf(buf + len, buf_len - len, | ||
179 | "\t\tcolor: %d\n", tx_info->color); | ||
180 | len += snprintf(buf + len, buf_len - len, | ||
181 | "\t\ttid: %d\n", tx_info->tid); | ||
182 | } | ||
183 | |||
184 | spin_unlock_irqrestore(&txq->stopped_queue.lock, flags); | ||
161 | } | 185 | } |
162 | 186 | ||
163 | ret = simple_read_from_buffer(buffer, len, ppos, buf, buf_len); | 187 | ret = simple_read_from_buffer(buffer, len, ppos, buf, buf_len); |