Re: [lock validator] net/ipv4/fib_hash.c: illegal {enabled-softirqs} -> {used-in-softirq} usage?

From: Herbert Xu
Date: Thu Jan 26 2006 - 20:40:16 EST


Ingo Molnar <mingo@xxxxxxx> wrote:
> the lock validator i'm working on found another item:
>
> ============================
> [ BUG: illegal lock usage! ]
> ----------------------------
> illegal {enabled-softirqs} -> {used-in-softirq} usage.
> hackbench/8407 [HC0[0]:SC1[2]:HE1:SE0] takes:
> {&state[i].lock} [<c0bf7d08>] wrandom_flush+0x2a/0xb3
> {enabled-softirqs} state was registered at:
> [<c0befc33>] fn_hash_insert+0x565/0x5c3
> hardirqs last enabled at: [<c0d29a36>] _spin_unlock_irq+0xd/0x10
> softirqs last enabled at: [<c012d0a0>] irq_exit+0x36/0x38
>
> other info that might help us debug this:
> locks held by hackbench/8407: <none>
>
> stack backtrace:
> [<c0103e86>] show_trace+0xd/0xf
> [<c0103e9d>] dump_stack+0x15/0x17
> [<c013eb40>] print_usage_bug+0x16d/0x177
> [<c013f130>] mark_lock+0xe3/0x248
> [<c013f65d>] debug_lock_chain+0x3c8/0xb1d
> [<c013fde3>] debug_lock_chain_spin+0x31/0x48
> [<c0410c4e>] _raw_spin_lock+0x34/0x7f
> [<c0d298fd>] _spin_lock+0x8/0xa
> [<c0bf7d08>] wrandom_flush+0x2a/0xb3

Good catch. In fact the other spin lock operation in the same file needs
BH protection as well since it is invoked by the output route path which
can be in user-context for local packets.

Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/