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 ? -- 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