On Tue, 1 Jul 2014 18:17:27 -0400
Chuck Lever <[email protected]> wrote:
> Hi-
>
> This happens during boot, and means that lockdep and lock_stat are
> completely disabled during any testing I do.
>
> Does this splat have a known fix, or should I file an upstream
> bugzilla?
>
>
> Jul 1 15:50:22 manet kernel: =================================
> Jul 1 15:50:22 manet kernel: [ INFO: inconsistent lock state ]
> Jul 1 15:50:22 manet kernel: 3.16.0-rc2-00024-g2e78883 #17 Tainted:
> G E Jul 1 15:50:22 manet kernel:
> --------------------------------- Jul 1 15:50:22 manet kernel:
> inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage. Jul 1 15:50:22
> manet kernel: swapper/0/0 [HC0[0]:SC1[1]:HE1:SE0] takes: Jul 1
> 15:50:22 manet kernel: (&(&iboe->lock)->rlock){+.?...}, at:
> [<ffffffffa065f68b>] mlx4_ib_addr_event+0xdb/0x1a0 [mlx4_ib] Jul 1
> 15:50:22 manet kernel: {SOFTIRQ-ON-W} state was registered at: Jul 1
> 15:50:22 manet kernel: [<ffffffff810b3110>]
> mark_irqflags+0x110/0x170 Jul 1 15:50:22 manet kernel:
> [<ffffffff810b4806>] __lock_acquire+0x2c6/0x5b0 Jul 1 15:50:22 manet
> kernel: [<ffffffff810b4bd9>] lock_acquire+0xe9/0x120 Jul 1 15:50:22
> manet kernel: [<ffffffff815f7f6e>] _raw_spin_lock+0x3e/0x80 Jul 1
> 15:50:22 manet kernel: [<ffffffffa0661084>]
> mlx4_ib_scan_netdevs+0x34/0x260 [mlx4_ib] Jul 1 15:50:22 manet
> kernel: [<ffffffffa06612db>] mlx4_ib_netdev_event+0x2b/0x40
> [mlx4_ib] Jul 1 15:50:22 manet kernel: [<ffffffff81522219>]
> register_netdevice_notifier+0x99/0x1e0 Jul 1 15:50:22 manet kernel:
> [<ffffffffa06626e3>] mlx4_ib_add+0x743/0xbc0 [mlx4_ib]
Hi Chuck,
There is a known fix which I need to submit.
The fix is to use lock/unlock_bh instead of spin_lock/unlock.
The netdev event notifier callback (mlx4_ib_addr_event), which also
uses the lock, is called from a soft-interrupt context, so turning off
hard interrupts is not needed here. _bh spinlocks are sufficient.
-Jack
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html