summaryrefslogtreecommitdiffstats
path: root/net/ipv4/inet_fragment.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-03-29 01:30:18 +0100
committerDavid S. Miller <davem@davemloft.net>2008-03-29 01:30:18 +0100
commite8e16b706e8406f1ab3bccab16932ebc513896d8 (patch)
tree75b52bb42601756995a1ffba206608f3f97b6df5 /net/ipv4/inet_fragment.c
parentnet: Comment dev_kfree_skb_irq and dev_kfree_skb_any better (diff)
downloadlinux-e8e16b706e8406f1ab3bccab16932ebc513896d8.tar.xz
linux-e8e16b706e8406f1ab3bccab16932ebc513896d8.zip
[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>
Diffstat (limited to 'net/ipv4/inet_fragment.c')
-rw-r--r--net/ipv4/inet_fragment.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/ipv4/inet_fragment.c b/net/ipv4/inet_fragment.c
index 724d69aed031..a0a3c78cb5e0 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);