Commit e8e16b70 authored by David S. Miller's avatar David S. Miller

[INET]: inet_frag_evictor() must run with BH disabled

Based upon a lockdep trace from Dave Jones.
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0ef47309
...@@ -86,7 +86,10 @@ EXPORT_SYMBOL(inet_frags_fini); ...@@ -86,7 +86,10 @@ EXPORT_SYMBOL(inet_frags_fini);
void inet_frags_exit_net(struct netns_frags *nf, struct inet_frags *f) void inet_frags_exit_net(struct netns_frags *nf, struct inet_frags *f)
{ {
nf->low_thresh = 0; nf->low_thresh = 0;
local_bh_disable();
inet_frag_evictor(nf, f); inet_frag_evictor(nf, f);
local_bh_enable();
} }
EXPORT_SYMBOL(inet_frags_exit_net); EXPORT_SYMBOL(inet_frags_exit_net);
......
...@@ -171,7 +171,9 @@ static __inline__ void fq_kill(struct nf_ct_frag6_queue *fq) ...@@ -171,7 +171,9 @@ static __inline__ void fq_kill(struct nf_ct_frag6_queue *fq)
static void nf_ct_frag6_evictor(void) static void nf_ct_frag6_evictor(void)
{ {
local_bh_disable();
inet_frag_evictor(&nf_init_frags, &nf_frags); inet_frag_evictor(&nf_init_frags, &nf_frags);
local_bh_enable();
} }
static void nf_ct_frag6_expire(unsigned long data) static void nf_ct_frag6_expire(unsigned long data)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment