mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 22:52:19 +02:00
iwlegacy: print how long queue was actually stuck
Every now and then, after resuming from suspend, the iwlegacy driver
prints
iwl4965 0000:03:00.0: Queue 2 stuck for 2000 ms.
iwl4965 0000:03:00.0: On demand firmware reload
I have no idea what causes these errors. But the code currently uses
wd_timeout in the first error. wd_timeout will generally be set at
IL_DEF_WD_TIMEOUT (ie, 2000). Perhaps printing for how long the queue
was actually stuck can clarify the cause of these errors.
Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
bf52592fe4
commit
26b6da6b78
|
|
@ -4717,10 +4717,11 @@ il_check_stuck_queue(struct il_priv *il, int cnt)
|
|||
struct il_tx_queue *txq = &il->txq[cnt];
|
||||
struct il_queue *q = &txq->q;
|
||||
unsigned long timeout;
|
||||
unsigned long now = jiffies;
|
||||
int ret;
|
||||
|
||||
if (q->read_ptr == q->write_ptr) {
|
||||
txq->time_stamp = jiffies;
|
||||
txq->time_stamp = now;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -4728,9 +4729,9 @@ il_check_stuck_queue(struct il_priv *il, int cnt)
|
|||
txq->time_stamp +
|
||||
msecs_to_jiffies(il->cfg->wd_timeout);
|
||||
|
||||
if (time_after(jiffies, timeout)) {
|
||||
if (time_after(now, timeout)) {
|
||||
IL_ERR("Queue %d stuck for %u ms.\n", q->id,
|
||||
il->cfg->wd_timeout);
|
||||
jiffies_to_msecs(now - txq->time_stamp));
|
||||
ret = il_force_reset(il, false);
|
||||
return (ret == -EAGAIN) ? 0 : 1;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user