From: Eric Dumazet Date: Tue, 24 Apr 2018 16:22:49 +0000 (-0700) Subject: net/ipv6: fix LOCKDEP issue in rt6_remove_exception_rt() X-Git-Tag: v4.18-rc1~114^2~393 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=091311debcf02ff80a76d70b524eba4b2ffe66f1;p=linux.git 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 Reported-by: syzbot Cc: David Ahern Acked-by: David Ahern Signed-off-by: David S. Miller --- 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;