Emmanuel Grumbach
d090f878b0
iwlwifi: pcie: disable BHs in iwl_pcie_txq_check_wrptrs
...
This fixes:
=================================
[ INFO: inconsistent lock state ]
3.14.3+ #5 Tainted: G O
---------------------------------
inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
swapper/3/0 [HC0[0]:SC1[3]:HE1:SE0] takes:
(&(&txq->lock)->rlock){+.?...}, at: [<ffffffffa059803c>] iwl_pcie_enqueue_hcmd+0x12c/0x1000 [iwlwifi]
{SOFTIRQ-ON-W} state was registered at:
[<ffffffff810d9071>] __lock_acquire+0x5f1/0x13b0
[<ffffffff810d9ee0>] lock_acquire+0xb0/0x1f0
[<ffffffff817ef80e>] _raw_spin_lock+0x3e/0x80
[<ffffffffa0598f7a>] iwl_pcie_txq_check_wrptrs+0x6a/0xb0 [iwlwifi]
[<ffffffffa0594b5a>] iwl_pcie_irq_handler+0xdba/0x2670 [iwlwifi]
[<ffffffff810ef1e0>] irq_thread_fn+0x20/0x50
[<ffffffff810ef77f>] irq_thread+0x11f/0x150
[<ffffffff810a04f0>] kthread+0xf0/0x110
[<ffffffff817fa4bc>] ret_from_fork+0x7c/0xb0
irq event stamp: 1142192
hardirqs last enabled at (1142192): [<ffffffff817efb6c>] _raw_spin_unlock_irq+0x2c/0x40
hardirqs last disabled at (1142191): [<ffffffff817ef9ef>] _raw_spin_lock_irq+0x1f/0x80
softirqs last enabled at (1142188): [<ffffffff81079082>] _local_bh_enable+0x22/0x50
softirqs last disabled at (1142189): [<ffffffff8107ad35>] irq_exit+0xe5/0xf0
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(&(&txq->lock)->rlock);
<Interrupt>
lock(&(&txq->lock)->rlock);
Fixes: ea68f46070c7 ("iwlwifi: pcie: clarify TX queue need_update handling")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2014-05-13 13:53:53 +03:00
..
2014-04-30 12:13:16 -04:00
2014-04-30 12:13:14 -04:00
2014-03-03 15:35:54 -05:00
2014-04-09 10:55:29 +02:00
2014-04-30 12:04:27 -04:00
2014-03-04 13:05:12 -05:00
2014-03-03 15:35:54 -05:00
2014-04-30 12:08:17 -04:00
2014-05-13 13:53:53 +03:00
2014-03-05 20:32:02 -05:00
2014-04-24 21:33:55 -04:00
2014-02-28 14:12:36 -05:00
2014-04-09 10:55:29 +02:00
2014-03-03 15:35:54 -05:00
2014-04-30 12:13:16 -04:00
2014-04-30 12:04:27 -04:00
2014-04-22 15:06:27 -04:00
2014-04-30 12:08:17 -04:00
2014-04-30 12:08:17 -04:00
2013-12-26 13:31:33 -05:00
2014-01-17 14:43:17 -05:00
2014-01-03 15:37:01 -05:00
2014-02-28 14:11:13 -05:00
2014-01-13 14:40:59 -05:00
2014-01-03 15:37:01 -05:00
2014-01-03 15:37:01 -05:00
2014-02-28 14:11:13 -05:00
2014-03-17 13:51:52 -04:00
2014-04-28 18:11:59 +02:00
2014-02-11 13:10:02 +01:00
2014-03-17 13:51:52 -04:00
2014-03-06 14:29:58 -05:00
2014-04-22 15:06:28 -04:00
2014-02-28 14:12:36 -05:00
2014-02-28 14:12:36 -05:00
2014-02-28 14:12:36 -05:00