Re: iwl4965: "MAC is in deep sleep!" freezes
From: Jonathan Nieder <hidden>
Date: 2011-09-02 23:38:17
Also in:
lkml
Hi, Christoph Anton Mitterer wrote[1]:
When I bring the WLAN interface up, after some time (usually just minutes) I get the following error (during which the system completely freezes for some 10-20s)
[...]
kernel: [ 951.087153] iwl4965 0000:14:00.0: Error sending REPLY_SCAN_CMD: time out after 500ms. wpa_supplicant[13032]: Failed to initiate AP scan. kernel: [ 952.089208] ------------[ cut here ]------------ kernel: [ 952.090089] WARNING: at drivers/net/wireless/iwlegacy/iwl-tx.c:483 iwl_legacy_enqueue_hcmd+0x3c7/0x3f0()
The warning is from v3.0-rc2~7^2~16^2~216 (iwlegacy: fix enqueue hcmd
race conditions, 2011-04-28):
| - spin_lock_irqsave(&priv->hcmd_lock, flags);
| -
| - /* If this is a huge cmd, mark the huge flag also on the meta.flags
| - * of the _original_ cmd. This is used for DMA mapping clean up.
| - */
| - if (cmd->flags & CMD_SIZE_HUGE) {
| - idx = iwl_legacy_get_cmd_index(q, q->write_ptr, 0);
| - txq->meta[idx].flags = CMD_SIZE_HUGE;
| - }
| -
| idx = iwl_legacy_get_cmd_index(q, q->write_ptr, cmd->flags & CMD_SIZE_HUGE);
| out_cmd = txq->cmd[idx];
| out_meta = &txq->meta[idx];
|
| + if (WARN_ON(out_meta->flags & CMD_MAPPED)) {
| + spin_unlock_irqrestore(&priv->hcmd_lock, flags);
| + return -ENOSPC;
| + }
| +
More details are at [1]. Stanislav, thoughts? Is this a bug, and if
so, any ideas for tracking it down?
Thanks,
Jonathan
[1] http://bugs.debian.org/636355