* Another 2.6.25rc7 lockdep trace
@ 2008-03-28 1:54 Dave Jones
2008-03-29 0:30 ` David Miller
0 siblings, 1 reply; 2+ messages in thread
From: Dave Jones @ 2008-03-28 1:54 UTC (permalink / raw)
To: netdev
Seems different to the one I just posted. This one popped up
after a barrage of random packets..
Dave
=================================
[ INFO: inconsistent lock state ]
2.6.25-0.161.rc7.fc9.i686 #1
---------------------------------
inconsistent {in-softirq-W} -> {softirq-on-R} usage.
modprobe/7285 [HC0[0]:SC0[0]:HE1:SE1] takes:
(&f->lock){-+-?}, at: [inet_frag_evictor+60/175] inet_frag_evictor+0x3c/0xaf
{in-softirq-W} state was registered at:
[__lock_acquire+1216/3089] __lock_acquire+0x4c0/0xc11
[lock_acquire+106/144] lock_acquire+0x6a/0x90
[_write_lock+28/73] _write_lock+0x1c/0x49
[inet_frag_find+216/405] inet_frag_find+0xd8/0x195
[ip_defrag+174/2168] ip_defrag+0xae/0x878
[<d0ca53e2>] ipv4_conntrack_defrag+0x4c/0x72 [nf_conntrack_ipv4]
[nf_iterate+47/100] nf_iterate+0x2f/0x64
[nf_hook_slow+85/193] nf_hook_slow+0x55/0xc1
[ip_rcv+494/551] ip_rcv+0x1ee/0x227
[netif_receive_skb+901/968] netif_receive_skb+0x385/0x3c8
[<d0d2488f>] e100_poll+0x165/0x2fb [e100]
[net_rx_action+203/506] net_rx_action+0xcb/0x1fa
[__do_softirq+132/266] __do_softirq+0x84/0x10a
[do_softirq+121/218] do_softirq+0x79/0xda
[<ffffffff>] 0xffffffff
irq event stamp: 7247
hardirqs last enabled at (7247): [_spin_unlock_irqrestore+64/80] _spin_unlock_irqrestore+0x40/0x50
hardirqs last disabled at (7246): [_spin_lock_irqsave+35/104] _spin_lock_irqsave+0x23/0x68
softirqs last enabled at (7244): [<d0e3a794>] nf_ct_iterate_cleanup+0xdc/0xfb [nf_conntrack]
softirqs last disabled at (7242): [_spin_lock_bh+12/78] _spin_lock_bh+0xc/0x4e
other info that might help us debug this:
no locks held by modprobe/7285.
stack backtrace:
Pid: 7285, comm: modprobe Not tainted 2.6.25-0.161.rc7.fc9.i686 #1
[print_usage_bug+266/279] print_usage_bug+0x10a/0x117
[mark_lock+822/1009] mark_lock+0x336/0x3f1
[__lock_acquire+1349/3089] __lock_acquire+0x545/0xc11
[_spin_unlock_irq+34/47] ? _spin_unlock_irq+0x22/0x2f
[lock_acquire+106/144] lock_acquire+0x6a/0x90
[inet_frag_evictor+60/175] ? inet_frag_evictor+0x3c/0xaf
[_read_lock+28/73] _read_lock+0x1c/0x49
[inet_frag_evictor+60/175] ? inet_frag_evictor+0x3c/0xaf
[inet_frag_evictor+60/175] inet_frag_evictor+0x3c/0xaf
[<d0e299f2>] nf_ct_frag6_cleanup+0x26/0x28 [nf_conntrack_ipv6]
[<d0e2a3f4>] nf_conntrack_l3proto_ipv6_fini+0x44/0x46 [nf_conntrack_ipv6]
[sys_delete_module+418/475] sys_delete_module+0x1a2/0x1db
[audit_syscall_entry+249/291] ? audit_syscall_entry+0xf9/0x123
[syscall_call+7/11] syscall_call+0x7/0xb
=======================
--
http://www.codemonkey.org.uk
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Another 2.6.25rc7 lockdep trace
2008-03-28 1:54 Another 2.6.25rc7 lockdep trace Dave Jones
@ 2008-03-29 0:30 ` David Miller
0 siblings, 0 replies; 2+ messages in thread
From: David Miller @ 2008-03-29 0:30 UTC (permalink / raw)
To: davej; +Cc: netdev
From: Dave Jones <davej@codemonkey.org.uk>
Date: Thu, 27 Mar 2008 21:54:16 -0400
> stack backtrace:
> Pid: 7285, comm: modprobe Not tainted 2.6.25-0.161.rc7.fc9.i686 #1
> [print_usage_bug+266/279] print_usage_bug+0x10a/0x117
> [mark_lock+822/1009] mark_lock+0x336/0x3f1
> [__lock_acquire+1349/3089] __lock_acquire+0x545/0xc11
> [_spin_unlock_irq+34/47] ? _spin_unlock_irq+0x22/0x2f
> [lock_acquire+106/144] lock_acquire+0x6a/0x90
> [inet_frag_evictor+60/175] ? inet_frag_evictor+0x3c/0xaf
> [_read_lock+28/73] _read_lock+0x1c/0x49
> [inet_frag_evictor+60/175] ? inet_frag_evictor+0x3c/0xaf
> [inet_frag_evictor+60/175] inet_frag_evictor+0x3c/0xaf
> [<d0e299f2>] nf_ct_frag6_cleanup+0x26/0x28 [nf_conntrack_ipv6]
> [<d0e2a3f4>] nf_conntrack_l3proto_ipv6_fini+0x44/0x46 [nf_conntrack_ipv6]
Thanks for the report.
This should fix it:
commit e8e16b706e8406f1ab3bccab16932ebc513896d8
Author: David S. Miller <davem@davemloft.net>
Date: Fri Mar 28 17:30:18 2008 -0700
[INET]: inet_frag_evictor() must run with BH disabled
Based upon a lockdep trace from Dave Jones.
Signed-off-by: David S. Miller <davem@davemloft.net>
diff --git a/net/ipv4/inet_fragment.c b/net/ipv4/inet_fragment.c
index 724d69a..a0a3c78 100644
--- a/net/ipv4/inet_fragment.c
+++ b/net/ipv4/inet_fragment.c
@@ -86,7 +86,10 @@ EXPORT_SYMBOL(inet_frags_fini);
void inet_frags_exit_net(struct netns_frags *nf, struct inet_frags *f)
{
nf->low_thresh = 0;
+
+ local_bh_disable();
inet_frag_evictor(nf, f);
+ local_bh_enable();
}
EXPORT_SYMBOL(inet_frags_exit_net);
diff --git a/net/ipv6/netfilter/nf_conntrack_reasm.c b/net/ipv6/netfilter/nf_conntrack_reasm.c
index 2a0d698..24c0d03 100644
--- a/net/ipv6/netfilter/nf_conntrack_reasm.c
+++ b/net/ipv6/netfilter/nf_conntrack_reasm.c
@@ -171,7 +171,9 @@ static __inline__ void fq_kill(struct nf_ct_frag6_queue *fq)
static void nf_ct_frag6_evictor(void)
{
+ local_bh_disable();
inet_frag_evictor(&nf_init_frags, &nf_frags);
+ local_bh_enable();
}
static void nf_ct_frag6_expire(unsigned long data)
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2008-03-29 0:30 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-28 1:54 Another 2.6.25rc7 lockdep trace Dave Jones
2008-03-29 0:30 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).