diff options
author | Eric Dumazet <edumazet@google.com> | 2018-04-24 09:22:49 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-04-24 16:19:14 -0400 |
commit | 091311debcf02ff80a76d70b524eba4b2ffe66f1 (patch) | |
tree | 1b03d2a4ead2602ef7754aa354696b7eee56240e /net/ipv6/route.c | |
parent | 95ad7544ad3f6cf585e5b8587e7d520fa3a43ad5 (diff) | |
download | blackbird-obmc-linux-091311debcf02ff80a76d70b524eba4b2ffe66f1.tar.gz blackbird-obmc-linux-091311debcf02ff80a76d70b524eba4b2ffe66f1.zip |
net/ipv6: fix LOCKDEP issue in rt6_remove_exception_rt()
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>
Acked-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/route.c')
-rw-r--r-- | net/ipv6/route.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c index ac3e51631c65..432c4bcc1111 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; |