lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Fri, 28 Mar 2008 17:30:58 -0700 (PDT)
From:	David Miller <davem@...emloft.net>
To:	davej@...emonkey.org.uk
Cc:	netdev@...r.kernel.org
Subject: Re: Another 2.6.25rc7 lockdep trace

From: Dave Jones <davej@...emonkey.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@...emloft.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@...emloft.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)
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists