On Thu, 20 Sep 2012 16:14:45 +0200 Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote: > On Thu, 2012-09-20 at 15:52 +0200, Ulrich Weber wrote: > > hlist walk in find_appropriate_src() is not protected anymore by rcu_read_lock(), > > so rcu_read_unlock() is unnecessary if in_range() matches. > > > > Signed-off-by: Ulrich Weber <ulrich.weber@xxxxxxxxxx> > > --- > > net/netfilter/nf_nat_core.c | 4 +--- > > 1 file changed, 1 insertion(+), 3 deletions(-) > > > > diff --git a/net/netfilter/nf_nat_core.c b/net/netfilter/nf_nat_core.c > > index 1816ad3..125d832 100644 > > --- a/net/netfilter/nf_nat_core.c > > +++ b/net/netfilter/nf_nat_core.c > > @@ -201,10 +201,8 @@ find_appropriate_src(struct net *net, u16 zone, > > &ct->tuplehash[IP_CT_DIR_REPLY].tuple); > > result->dst = tuple->dst; > > > > - if (in_range(l3proto, l4proto, result, range)) { > > - rcu_read_unlock(); > > + if (in_range(l3proto, l4proto, result, range)) > > return 1; > > - } > > } > > } > > return 0; > > > This could explain the rcu_read_unlock() imbalance Stephen had (lockdep > splat with net-next) > > > How old is this bug ? > > > Will validate the fix tomorrow when back home. -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html