Message ID | 20180424162249.41820-1-edumazet@google.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Series | [net-next] net/ipv6: fix LOCKDEP issue in rt6_remove_exception_rt() | expand |
On 4/24/18 10:22 AM, Eric Dumazet wrote: > rt6_remove_exception_rt() is called under rcu_read_lock() only. > > We lock rt6_exception_lock a bit later, so we do not hold > rt6_exception_lock yet. > > Fixes: 8a14e46f1402 ("net/ipv6: Fix missing rcu dereferences on from") > Signed-off-by: Eric Dumazet <edumazet@google.com> > Reported-by: syzbot <syzkaller@googlegroups.com> > Cc: David Ahern <dsahern@gmail.com> > --- > net/ipv6/route.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > Acked-by: David Ahern <dsahern@gmail.com> Thanks, Eric.
From: Eric Dumazet <edumazet@google.com> Date: Tue, 24 Apr 2018 09:22:49 -0700 > rt6_remove_exception_rt() is called under rcu_read_lock() only. > > We lock rt6_exception_lock a bit later, so we do not hold > rt6_exception_lock yet. > > Fixes: 8a14e46f1402 ("net/ipv6: Fix missing rcu dereferences on from") > Signed-off-by: Eric Dumazet <edumazet@google.com> > Reported-by: syzbot <syzkaller@googlegroups.com> Applied, thanks Eric.
diff --git a/net/ipv6/route.c b/net/ipv6/route.c index ac3e51631c659b5c5c8a93c17011cb7f3ad266e2..432c4bcc1111085671f32987e4673e47898085a3 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -1546,8 +1546,7 @@ static int rt6_remove_exception_rt(struct rt6_info *rt) struct fib6_info *from; int err; - from = rcu_dereference_protected(rt->from, - lockdep_is_held(&rt6_exception_lock)); + from = rcu_dereference(rt->from); if (!from || !(rt->rt6i_flags & RTF_CACHE)) return -EINVAL;
rt6_remove_exception_rt() is called under rcu_read_lock() only. We lock rt6_exception_lock a bit later, so we do not hold rt6_exception_lock yet. Fixes: 8a14e46f1402 ("net/ipv6: Fix missing rcu dereferences on from") Signed-off-by: Eric Dumazet <edumazet@google.com> Reported-by: syzbot <syzkaller@googlegroups.com> Cc: David Ahern <dsahern@gmail.com> --- net/ipv6/route.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)