On Sun, 2013-10-13 at 08:13 +0800, baker.ker...@gmail.com wrote: > From: "baker.zhang" <baker.ker...@gmail.com> > > fib_table_lookup has included the rcu lock protection. > > Signed-off-by: baker.zhang <baker.ker...@gmail.com> > --- > net/ipv4/fib_frontend.c | 4 ---- > 1 file changed, 4 deletions(-) > > diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c > index b3f627a..0e9127d 100644 > --- a/net/ipv4/fib_frontend.c > +++ b/net/ipv4/fib_frontend.c > @@ -170,12 +170,10 @@ static inline unsigned int __inet_dev_addr_type(struct > net *net, > local_table = fib_get_table(net, RT_TABLE_LOCAL); > if (local_table) { > ret = RTN_UNICAST; > - rcu_read_lock(); > if (!fib_table_lookup(local_table, &fl4, &res, > FIB_LOOKUP_NOREF)) { > if (!dev || dev == res.fi->fib_dev) > ret = res.type; > } > - rcu_read_unlock(); > }
This looks very wrong. res.fi could disappear, and we crash. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/