All of lore.kernel.org
 help / color / mirror / Atom feed
* UDP/bnx2: inconsistent lock state (Re: linux-next: Tree for October 30)
@ 2008-10-30 10:40 Alexander Beregalov
  2008-10-30 12:59 ` Alexander Beregalov
  2008-10-30 13:21 ` Eric Dumazet
  0 siblings, 2 replies; 5+ messages in thread
From: Alexander Beregalov @ 2008-10-30 10:40 UTC (permalink / raw)
  To: mchan; +Cc: linux-next, Netdev

bnx2 0000:03:00.0: irq 38 for MSI/MSI-X
bnx2: eth0: using MSI
bnx2: eth0 NIC Copper Link is Up, 1000 Mbps full duplex, receive &
transmit flow control ON

[ INFO: inconsistent lock state ]
2.6.28-rc2-next-20081030 #4
---------------------------------
inconsistent {softirq-on-W} -> {in-softirq-W} usage.
swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
 (&table->hash[i].lock){-+..}, at: [<ffffffff804ea8c5>]
__udp4_lib_rcv+0x2a5/0x640
{softirq-on-W} state was registered at:
  [<ffffffff80257ea0>] __lock_acquire+0x2fd/0xc72
  [<ffffffff8025889a>] lock_acquire+0x85/0xa9
  [<ffffffff80525527>] _spin_lock+0x3c/0x70
  [<ffffffff804eaca2>] udp_lib_unhash+0x2b/0x90
  [<ffffffff804ab315>] sk_common_release+0x2f/0x83
  [<ffffffff804e9631>] udp_lib_close+0x9/0xb
  [<ffffffff804f1274>] inet_release+0x58/0x5f
  [<ffffffff804a889e>] sock_release+0x20/0xc1
  [<ffffffff804a8973>] sock_close+0x34/0x3a
  [<ffffffff8029e8ee>] __fput+0xc5/0x164
  [<ffffffff8029e9a2>] fput+0x15/0x17
  [<ffffffff8029be90>] filp_close+0x67/0x72
  [<ffffffff8023864a>] put_files_struct+0x74/0xc8
  [<ffffffff802386e5>] exit_files+0x47/0x4f
  [<ffffffff80239f28>] do_exit+0x27a/0x8b7
  [<ffffffff8023a5e4>] do_group_exit+0x7f/0xaf
  [<ffffffff8023a626>] sys_exit_group+0x12/0x14
  [<ffffffff8020b6fb>] system_call_fastpath+0x16/0x1b
  [<ffffffffffffffff>] 0xffffffffffffffff
irq event stamp: 56806
hardirqs last  enabled at (56806): [<ffffffff8023bf15>]
_local_bh_enable_ip+0xba/0xe3
hardirqs last disabled at (56805): [<ffffffff8023beaf>]
_local_bh_enable_ip+0x54/0xe3
softirqs last  enabled at (56786): [<ffffffff8023c0ec>] __do_softirq+0xf8/0x104
softirqs last disabled at (56791): [<ffffffff8020cbac>] call_softirq+0x1c/0x28

other info that might help us debug this:
no locks held by swapper/0.

stack backtrace:
Pid: 0, comm: swapper Not tainted 2.6.28-rc2-next-20081030 #4
Call Trace:
 <IRQ>  [<ffffffff80256a9c>] valid_state+0x179/0x18c
 [<ffffffff80256fda>] mark_lock+0x14d/0x37a
 [<ffffffff80257e25>] __lock_acquire+0x282/0xc72
 [<ffffffff804c9a91>] ? rt_intern_hash+0x442/0x45c
 [<ffffffff8023bf47>] ? local_bh_enable_ip+0x9/0xb
 [<ffffffff8025889a>] lock_acquire+0x85/0xa9
 [<ffffffff804ea8c5>] ? __udp4_lib_rcv+0x2a5/0x640
 [<ffffffff80525527>] _spin_lock+0x3c/0x70
 [<ffffffff804ea8c5>] ? __udp4_lib_rcv+0x2a5/0x640
 [<ffffffff804ea8c5>] __udp4_lib_rcv+0x2a5/0x640
 [<ffffffff804eac75>] udp_rcv+0x15/0x17
 [<ffffffff804cc1ec>] ip_local_deliver+0xad/0x13d
 [<ffffffff804cc107>] ip_rcv+0x4b7/0x4ef
 [<ffffffff804b3efb>] netif_receive_skb+0x213/0x23a
 [<ffffffff8042fa7c>] bnx2_poll_work+0x92e/0xaa5
 [<ffffffff8024f935>] ? getnstimeofday+0x3a/0x96
 [<ffffffff8025011e>] ? do_settimeofday+0x7f/0x131
 [<ffffffff8025001e>] ? update_wall_time+0x38e/0x40f
 [<ffffffff80256ea9>] ? mark_lock+0x1c/0x37a
 [<ffffffff802694f4>] ? __rcu_read_lock+0xa0/0xaf
 [<ffffffff8042fe41>] bnx2_poll+0x128/0x20d
 [<ffffffff804b2935>] net_rx_action+0xd2/0x1f4
 [<ffffffff8023c064>] __do_softirq+0x70/0x104
 [<ffffffff8020cbac>] call_softirq+0x1c/0x28
 [<ffffffff8020e1d5>] do_softirq+0x39/0x8a
 [<ffffffff8023bc89>] irq_exit+0x45/0xa2
 [<ffffffff8020e4e6>] do_IRQ+0x16a/0x19c
 [<ffffffff8020bc8b>] ret_from_intr+0x0/0xf
 <EOI>  [<ffffffff80212d69>] ? mwait_idle+0x3e/0x48
 [<ffffffff80212d60>] ? mwait_idle+0x35/0x48
 [<ffffffff8020a8db>] ? cpu_idle+0x59/0xc2
 [<ffffffff8051feb4>] ? start_secondary+0x263/0x26b

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: UDP/bnx2: inconsistent lock state (Re: linux-next: Tree for October 30)
  2008-10-30 10:40 UDP/bnx2: inconsistent lock state (Re: linux-next: Tree for October 30) Alexander Beregalov
@ 2008-10-30 12:59 ` Alexander Beregalov
  2008-10-30 13:22   ` Eric Dumazet
  2008-10-30 13:21 ` Eric Dumazet
  1 sibling, 1 reply; 5+ messages in thread
From: Alexander Beregalov @ 2008-10-30 12:59 UTC (permalink / raw)
  To: mchan; +Cc: linux-next, Netdev

2008/10/30 Alexander Beregalov <a.beregalov@gmail.com>:
> bnx2 0000:03:00.0: irq 38 for MSI/MSI-X
> bnx2: eth0: using MSI
> bnx2: eth0 NIC Copper Link is Up, 1000 Mbps full duplex, receive &
> transmit flow control ON
>
> [ INFO: inconsistent lock state ]
> 2.6.28-rc2-next-20081030 #4
> ---------------------------------
> inconsistent {softirq-on-W} -> {in-softirq-W} usage.
> swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
>  (&table->hash[i].lock){-+..}, at: [<ffffffff804ea8c5>]
> __udp4_lib_rcv+0x2a5/0x640
> {softirq-on-W} state was registered at:
>  [<ffffffff80257ea0>] __lock_acquire+0x2fd/0xc72
>  [<ffffffff8025889a>] lock_acquire+0x85/0xa9
>  [<ffffffff80525527>] _spin_lock+0x3c/0x70
>  [<ffffffff804eaca2>] udp_lib_unhash+0x2b/0x90
>  [<ffffffff804ab315>] sk_common_release+0x2f/0x83
>  [<ffffffff804e9631>] udp_lib_close+0x9/0xb
>  [<ffffffff804f1274>] inet_release+0x58/0x5f
>  [<ffffffff804a889e>] sock_release+0x20/0xc1
>  [<ffffffff804a8973>] sock_close+0x34/0x3a
>  [<ffffffff8029e8ee>] __fput+0xc5/0x164
>  [<ffffffff8029e9a2>] fput+0x15/0x17
>  [<ffffffff8029be90>] filp_close+0x67/0x72
>  [<ffffffff8023864a>] put_files_struct+0x74/0xc8
>  [<ffffffff802386e5>] exit_files+0x47/0x4f
>  [<ffffffff80239f28>] do_exit+0x27a/0x8b7
>  [<ffffffff8023a5e4>] do_group_exit+0x7f/0xaf
>  [<ffffffff8023a626>] sys_exit_group+0x12/0x14
>  [<ffffffff8020b6fb>] system_call_fastpath+0x16/0x1b
>  [<ffffffffffffffff>] 0xffffffffffffffff
> irq event stamp: 56806
> hardirqs last  enabled at (56806): [<ffffffff8023bf15>]
> _local_bh_enable_ip+0xba/0xe3
> hardirqs last disabled at (56805): [<ffffffff8023beaf>]
> _local_bh_enable_ip+0x54/0xe3
> softirqs last  enabled at (56786): [<ffffffff8023c0ec>] __do_softirq+0xf8/0x104
> softirqs last disabled at (56791): [<ffffffff8020cbac>] call_softirq+0x1c/0x28
>
> other info that might help us debug this:
> no locks held by swapper/0.
>
> stack backtrace:
> Pid: 0, comm: swapper Not tainted 2.6.28-rc2-next-20081030 #4
> Call Trace:
>  <IRQ>  [<ffffffff80256a9c>] valid_state+0x179/0x18c
>  [<ffffffff80256fda>] mark_lock+0x14d/0x37a
>  [<ffffffff80257e25>] __lock_acquire+0x282/0xc72
>  [<ffffffff804c9a91>] ? rt_intern_hash+0x442/0x45c
>  [<ffffffff8023bf47>] ? local_bh_enable_ip+0x9/0xb
>  [<ffffffff8025889a>] lock_acquire+0x85/0xa9
>  [<ffffffff804ea8c5>] ? __udp4_lib_rcv+0x2a5/0x640
>  [<ffffffff80525527>] _spin_lock+0x3c/0x70
>  [<ffffffff804ea8c5>] ? __udp4_lib_rcv+0x2a5/0x640
>  [<ffffffff804ea8c5>] __udp4_lib_rcv+0x2a5/0x640
>  [<ffffffff804eac75>] udp_rcv+0x15/0x17
>  [<ffffffff804cc1ec>] ip_local_deliver+0xad/0x13d
>  [<ffffffff804cc107>] ip_rcv+0x4b7/0x4ef
>  [<ffffffff804b3efb>] netif_receive_skb+0x213/0x23a
>  [<ffffffff8042fa7c>] bnx2_poll_work+0x92e/0xaa5
>  [<ffffffff8024f935>] ? getnstimeofday+0x3a/0x96
>  [<ffffffff8025011e>] ? do_settimeofday+0x7f/0x131
>  [<ffffffff8025001e>] ? update_wall_time+0x38e/0x40f
>  [<ffffffff80256ea9>] ? mark_lock+0x1c/0x37a
>  [<ffffffff802694f4>] ? __rcu_read_lock+0xa0/0xaf
>  [<ffffffff8042fe41>] bnx2_poll+0x128/0x20d
>  [<ffffffff804b2935>] net_rx_action+0xd2/0x1f4
>  [<ffffffff8023c064>] __do_softirq+0x70/0x104
>  [<ffffffff8020cbac>] call_softirq+0x1c/0x28
>  [<ffffffff8020e1d5>] do_softirq+0x39/0x8a
>  [<ffffffff8023bc89>] irq_exit+0x45/0xa2
>  [<ffffffff8020e4e6>] do_IRQ+0x16a/0x19c
>  [<ffffffff8020bc8b>] ret_from_intr+0x0/0xf
>  <EOI>  [<ffffffff80212d69>] ? mwait_idle+0x3e/0x48
>  [<ffffffff80212d60>] ? mwait_idle+0x35/0x48
>  [<ffffffff8020a8db>] ? cpu_idle+0x59/0xc2
>  [<ffffffff8051feb4>] ? start_secondary+0x263/0x26b
>

Similar issue on sparc/sunhme

[ INFO: inconsistent lock state ]
2.6.28-rc2-next-20081030 #12
---------------------------------
inconsistent {softirq-on-W} -> {in-softirq-W} usage.
swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
 (&table->hash[i].lock){-+..}, at: [<000000000069fbd0>]
__udp4_lib_rcv+0x344/0x840
{softirq-on-W} state was registered at:
  [<00000000006dbe30>] _spin_lock+0x30/0x48
  [<00000000006a0128>] udp_lib_unhash+0x2c/0xa4
  [<0000000000656030>] sk_common_release+0x34/0x8c
  [<000000000069e588>] udp_lib_close+0x10/0x20
  [<00000000006a78a4>] inet_release+0x54/0x64
  [<00000000006530b0>] sock_release+0x20/0x9c
  [<0000000000653164>] sock_close+0x38/0x4c
  [<00000000004b496c>] __fput+0xcc/0x1b4
  [<00000000004b4a7c>] fput+0x28/0x38
  [<00000000004b1c40>] filp_close+0x74/0x88
  [<00000000004b1cf0>] sys_close+0x9c/0xf8
  [<0000000000406154>] linux_sparc_syscall32+0x34/0x40
irq event stamp: 91778
hardirqs last  enabled at (91778): [<0000000000455a20>]
local_bh_enable_ip+0xc4/0xf0
hardirqs last disabled at (91777): [<00000000004559b4>]
local_bh_enable_ip+0x58/0xf0
softirqs last  enabled at (91764): [<0000000000455cfc>] __do_softirq+0x108/0x118
softirqs last disabled at (91767): [<000000000042d948>] do_softirq+0x7c/0xbc

other info that might help us debug this:
no locks held by swapper/0.

stack backtrace:
Call Trace:
 [0000000000472168] print_usage_bug+0x1bc/0x1cc
 [0000000000472cac] mark_lock+0x564/0xe9c
 [0000000000474b44] __lock_acquire+0x778/0x1ac8
 [0000000000475ef0] lock_acquire+0x5c/0x74
 [00000000006dbe30] _spin_lock+0x30/0x48
 [000000000069fbd0] __udp4_lib_rcv+0x344/0x840
 [00000000006a00e8] udp_rcv+0x1c/0x30
 [000000000067d1bc] ip_local_deliver+0xe0/0x168
 [000000000067d0a0] ip_rcv+0x51c/0x558
 [000000000066048c] netif_receive_skb+0x32c/0x358
 [0000000000660548] process_backlog+0x90/0x114
 [000000000065eb20] net_rx_action+0xd0/0x1e4
 [0000000000455c68] __do_softirq+0x74/0x118
 [000000000042d948] do_softirq+0x7c/0xbc
 [0000000000455738] irq_exit+0x54/0xc0
 [000000000042da84] handler_irq+0xfc/0x114

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: UDP/bnx2: inconsistent lock state (Re: linux-next: Tree for October 30)
  2008-10-30 10:40 UDP/bnx2: inconsistent lock state (Re: linux-next: Tree for October 30) Alexander Beregalov
  2008-10-30 12:59 ` Alexander Beregalov
@ 2008-10-30 13:21 ` Eric Dumazet
  2008-10-30 21:01   ` UDP/bnx2: inconsistent lock state David Miller
  1 sibling, 1 reply; 5+ messages in thread
From: Eric Dumazet @ 2008-10-30 13:21 UTC (permalink / raw)
  To: Alexander Beregalov; +Cc: mchan, linux-next, Netdev

[-- Attachment #1: Type: text/plain, Size: 4018 bytes --]

Alexander Beregalov a écrit :
> bnx2 0000:03:00.0: irq 38 for MSI/MSI-X
> bnx2: eth0: using MSI
> bnx2: eth0 NIC Copper Link is Up, 1000 Mbps full duplex, receive &
> transmit flow control ON
> 
> [ INFO: inconsistent lock state ]
> 2.6.28-rc2-next-20081030 #4
> ---------------------------------
> inconsistent {softirq-on-W} -> {in-softirq-W} usage.
> swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
>  (&table->hash[i].lock){-+..}, at: [<ffffffff804ea8c5>]
> __udp4_lib_rcv+0x2a5/0x640
> {softirq-on-W} state was registered at:
>   [<ffffffff80257ea0>] __lock_acquire+0x2fd/0xc72
>   [<ffffffff8025889a>] lock_acquire+0x85/0xa9
>   [<ffffffff80525527>] _spin_lock+0x3c/0x70
>   [<ffffffff804eaca2>] udp_lib_unhash+0x2b/0x90
>   [<ffffffff804ab315>] sk_common_release+0x2f/0x83
>   [<ffffffff804e9631>] udp_lib_close+0x9/0xb
>   [<ffffffff804f1274>] inet_release+0x58/0x5f
>   [<ffffffff804a889e>] sock_release+0x20/0xc1
>   [<ffffffff804a8973>] sock_close+0x34/0x3a
>   [<ffffffff8029e8ee>] __fput+0xc5/0x164
>   [<ffffffff8029e9a2>] fput+0x15/0x17
>   [<ffffffff8029be90>] filp_close+0x67/0x72
>   [<ffffffff8023864a>] put_files_struct+0x74/0xc8
>   [<ffffffff802386e5>] exit_files+0x47/0x4f
>   [<ffffffff80239f28>] do_exit+0x27a/0x8b7
>   [<ffffffff8023a5e4>] do_group_exit+0x7f/0xaf
>   [<ffffffff8023a626>] sys_exit_group+0x12/0x14
>   [<ffffffff8020b6fb>] system_call_fastpath+0x16/0x1b
>   [<ffffffffffffffff>] 0xffffffffffffffff
> irq event stamp: 56806
> hardirqs last  enabled at (56806): [<ffffffff8023bf15>]
> _local_bh_enable_ip+0xba/0xe3
> hardirqs last disabled at (56805): [<ffffffff8023beaf>]
> _local_bh_enable_ip+0x54/0xe3
> softirqs last  enabled at (56786): [<ffffffff8023c0ec>] __do_softirq+0xf8/0x104
> softirqs last disabled at (56791): [<ffffffff8020cbac>] call_softirq+0x1c/0x28
> 
> other info that might help us debug this:
> no locks held by swapper/0.
> 
> stack backtrace:
> Pid: 0, comm: swapper Not tainted 2.6.28-rc2-next-20081030 #4
> Call Trace:
>  <IRQ>  [<ffffffff80256a9c>] valid_state+0x179/0x18c
>  [<ffffffff80256fda>] mark_lock+0x14d/0x37a
>  [<ffffffff80257e25>] __lock_acquire+0x282/0xc72
>  [<ffffffff804c9a91>] ? rt_intern_hash+0x442/0x45c
>  [<ffffffff8023bf47>] ? local_bh_enable_ip+0x9/0xb
>  [<ffffffff8025889a>] lock_acquire+0x85/0xa9
>  [<ffffffff804ea8c5>] ? __udp4_lib_rcv+0x2a5/0x640
>  [<ffffffff80525527>] _spin_lock+0x3c/0x70
>  [<ffffffff804ea8c5>] ? __udp4_lib_rcv+0x2a5/0x640
>  [<ffffffff804ea8c5>] __udp4_lib_rcv+0x2a5/0x640
>  [<ffffffff804eac75>] udp_rcv+0x15/0x17
>  [<ffffffff804cc1ec>] ip_local_deliver+0xad/0x13d
>  [<ffffffff804cc107>] ip_rcv+0x4b7/0x4ef
>  [<ffffffff804b3efb>] netif_receive_skb+0x213/0x23a
>  [<ffffffff8042fa7c>] bnx2_poll_work+0x92e/0xaa5
>  [<ffffffff8024f935>] ? getnstimeofday+0x3a/0x96
>  [<ffffffff8025011e>] ? do_settimeofday+0x7f/0x131
>  [<ffffffff8025001e>] ? update_wall_time+0x38e/0x40f
>  [<ffffffff80256ea9>] ? mark_lock+0x1c/0x37a
>  [<ffffffff802694f4>] ? __rcu_read_lock+0xa0/0xaf
>  [<ffffffff8042fe41>] bnx2_poll+0x128/0x20d
>  [<ffffffff804b2935>] net_rx_action+0xd2/0x1f4
>  [<ffffffff8023c064>] __do_softirq+0x70/0x104
>  [<ffffffff8020cbac>] call_softirq+0x1c/0x28
>  [<ffffffff8020e1d5>] do_softirq+0x39/0x8a
>  [<ffffffff8023bc89>] irq_exit+0x45/0xa2
>  [<ffffffff8020e4e6>] do_IRQ+0x16a/0x19c
>  [<ffffffff8020bc8b>] ret_from_intr+0x0/0xf
>  <EOI>  [<ffffffff80212d69>] ? mwait_idle+0x3e/0x48
>  [<ffffffff80212d60>] ? mwait_idle+0x35/0x48
>  [<ffffffff8020a8db>] ? cpu_idle+0x59/0xc2
>  [<ffffffff8051feb4>] ? start_secondary+0x263/0x26b

Thanks for the report Alexander

We need to use spin_lock_bh()/spin_unlock_bh() in udp_lib_unhash()

Previous code was doing a write_lock_bh()/write_unlock_bh(), I cannot
believe I missed this obvious thing...

[PATCH] udp: Should use spin_lock_bh()/spin_unlock_bh() in udp_lib_unhash()

Spotted by Alexander Beregalov

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>


[-- Attachment #2: udp_lib_unhash.patch --]
[-- Type: text/plain, Size: 563 bytes --]

diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index c3ecec8..f760b86 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -970,12 +970,12 @@ void udp_lib_unhash(struct sock *sk)
 	unsigned int hash = udp_hashfn(sock_net(sk), sk->sk_hash);
 	struct udp_hslot *hslot = &udptable->hash[hash];
 
-	spin_lock(&hslot->lock);
+	spin_lock_bh(&hslot->lock);
 	if (sk_del_node_init_rcu(sk)) {
 		inet_sk(sk)->num = 0;
 		sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1);
 	}
-	spin_unlock(&hslot->lock);
+	spin_unlock_bh(&hslot->lock);
 }
 EXPORT_SYMBOL(udp_lib_unhash);
 

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: UDP/bnx2: inconsistent lock state (Re: linux-next: Tree for October 30)
  2008-10-30 12:59 ` Alexander Beregalov
@ 2008-10-30 13:22   ` Eric Dumazet
  0 siblings, 0 replies; 5+ messages in thread
From: Eric Dumazet @ 2008-10-30 13:22 UTC (permalink / raw)
  To: Alexander Beregalov; +Cc: mchan, linux-next, Netdev

Alexander Beregalov a écrit :
> 2008/10/30 Alexander Beregalov <a.beregalov@gmail.com>:
>> bnx2 0000:03:00.0: irq 38 for MSI/MSI-X
>> bnx2: eth0: using MSI
>> bnx2: eth0 NIC Copper Link is Up, 1000 Mbps full duplex, receive &
>> transmit flow control ON
>>
>> [ INFO: inconsistent lock state ]
>> 2.6.28-rc2-next-20081030 #4
>> ---------------------------------
>> inconsistent {softirq-on-W} -> {in-softirq-W} usage.
>> swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
>>  (&table->hash[i].lock){-+..}, at: [<ffffffff804ea8c5>]
>> __udp4_lib_rcv+0x2a5/0x640
>> {softirq-on-W} state was registered at:
>>  [<ffffffff80257ea0>] __lock_acquire+0x2fd/0xc72
>>  [<ffffffff8025889a>] lock_acquire+0x85/0xa9
>>  [<ffffffff80525527>] _spin_lock+0x3c/0x70
>>  [<ffffffff804eaca2>] udp_lib_unhash+0x2b/0x90
>>  [<ffffffff804ab315>] sk_common_release+0x2f/0x83
>>  [<ffffffff804e9631>] udp_lib_close+0x9/0xb
>>  [<ffffffff804f1274>] inet_release+0x58/0x5f
>>  [<ffffffff804a889e>] sock_release+0x20/0xc1
>>  [<ffffffff804a8973>] sock_close+0x34/0x3a
>>  [<ffffffff8029e8ee>] __fput+0xc5/0x164
>>  [<ffffffff8029e9a2>] fput+0x15/0x17
>>  [<ffffffff8029be90>] filp_close+0x67/0x72
>>  [<ffffffff8023864a>] put_files_struct+0x74/0xc8
>>  [<ffffffff802386e5>] exit_files+0x47/0x4f
>>  [<ffffffff80239f28>] do_exit+0x27a/0x8b7
>>  [<ffffffff8023a5e4>] do_group_exit+0x7f/0xaf
>>  [<ffffffff8023a626>] sys_exit_group+0x12/0x14
>>  [<ffffffff8020b6fb>] system_call_fastpath+0x16/0x1b
>>  [<ffffffffffffffff>] 0xffffffffffffffff
>> irq event stamp: 56806
>> hardirqs last  enabled at (56806): [<ffffffff8023bf15>]
>> _local_bh_enable_ip+0xba/0xe3
>> hardirqs last disabled at (56805): [<ffffffff8023beaf>]
>> _local_bh_enable_ip+0x54/0xe3
>> softirqs last  enabled at (56786): [<ffffffff8023c0ec>] __do_softirq+0xf8/0x104
>> softirqs last disabled at (56791): [<ffffffff8020cbac>] call_softirq+0x1c/0x28
>>
>> other info that might help us debug this:
>> no locks held by swapper/0.
>>
>> stack backtrace:
>> Pid: 0, comm: swapper Not tainted 2.6.28-rc2-next-20081030 #4
>> Call Trace:
>>  <IRQ>  [<ffffffff80256a9c>] valid_state+0x179/0x18c
>>  [<ffffffff80256fda>] mark_lock+0x14d/0x37a
>>  [<ffffffff80257e25>] __lock_acquire+0x282/0xc72
>>  [<ffffffff804c9a91>] ? rt_intern_hash+0x442/0x45c
>>  [<ffffffff8023bf47>] ? local_bh_enable_ip+0x9/0xb
>>  [<ffffffff8025889a>] lock_acquire+0x85/0xa9
>>  [<ffffffff804ea8c5>] ? __udp4_lib_rcv+0x2a5/0x640
>>  [<ffffffff80525527>] _spin_lock+0x3c/0x70
>>  [<ffffffff804ea8c5>] ? __udp4_lib_rcv+0x2a5/0x640
>>  [<ffffffff804ea8c5>] __udp4_lib_rcv+0x2a5/0x640
>>  [<ffffffff804eac75>] udp_rcv+0x15/0x17
>>  [<ffffffff804cc1ec>] ip_local_deliver+0xad/0x13d
>>  [<ffffffff804cc107>] ip_rcv+0x4b7/0x4ef
>>  [<ffffffff804b3efb>] netif_receive_skb+0x213/0x23a
>>  [<ffffffff8042fa7c>] bnx2_poll_work+0x92e/0xaa5
>>  [<ffffffff8024f935>] ? getnstimeofday+0x3a/0x96
>>  [<ffffffff8025011e>] ? do_settimeofday+0x7f/0x131
>>  [<ffffffff8025001e>] ? update_wall_time+0x38e/0x40f
>>  [<ffffffff80256ea9>] ? mark_lock+0x1c/0x37a
>>  [<ffffffff802694f4>] ? __rcu_read_lock+0xa0/0xaf
>>  [<ffffffff8042fe41>] bnx2_poll+0x128/0x20d
>>  [<ffffffff804b2935>] net_rx_action+0xd2/0x1f4
>>  [<ffffffff8023c064>] __do_softirq+0x70/0x104
>>  [<ffffffff8020cbac>] call_softirq+0x1c/0x28
>>  [<ffffffff8020e1d5>] do_softirq+0x39/0x8a
>>  [<ffffffff8023bc89>] irq_exit+0x45/0xa2
>>  [<ffffffff8020e4e6>] do_IRQ+0x16a/0x19c
>>  [<ffffffff8020bc8b>] ret_from_intr+0x0/0xf
>>  <EOI>  [<ffffffff80212d69>] ? mwait_idle+0x3e/0x48
>>  [<ffffffff80212d60>] ? mwait_idle+0x35/0x48
>>  [<ffffffff8020a8db>] ? cpu_idle+0x59/0xc2
>>  [<ffffffff8051feb4>] ? start_secondary+0x263/0x26b
>>
> 
> Similar issue on sparc/sunhme
> 
>

Yes, its a generic problem, I replied to your previous mail with a proper fix

Thank you


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: UDP/bnx2: inconsistent lock state
  2008-10-30 13:21 ` Eric Dumazet
@ 2008-10-30 21:01   ` David Miller
  0 siblings, 0 replies; 5+ messages in thread
From: David Miller @ 2008-10-30 21:01 UTC (permalink / raw)
  To: dada1; +Cc: a.beregalov, mchan, linux-next, netdev

From: Eric Dumazet <dada1@cosmosbay.com>
Date: Thu, 30 Oct 2008 14:21:29 +0100

> [PATCH] udp: Should use spin_lock_bh()/spin_unlock_bh() in udp_lib_unhash()
> 
> Spotted by Alexander Beregalov
> 
> Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>

Applied, thanks for fixing this so quickly Eric.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-10-30 21:01 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-30 10:40 UDP/bnx2: inconsistent lock state (Re: linux-next: Tree for October 30) Alexander Beregalov
2008-10-30 12:59 ` Alexander Beregalov
2008-10-30 13:22   ` Eric Dumazet
2008-10-30 13:21 ` Eric Dumazet
2008-10-30 21:01   ` UDP/bnx2: inconsistent lock state David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.