diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 0407bbc5a028be646cbbdab861489fa0314400db..354a5b8d016ffa37f7969aa13d6b3a02d3e31691 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -2201,10 +2201,12 @@ static struct dst_entry *ip6_negative_advice(struct dst_entry *dst) if (rt) { if (rt->rt6i_flags & RTF_CACHE) { + rcu_read_lock(); if (rt6_check_expired(rt)) { rt6_remove_exception_rt(rt); dst = NULL; } + rcu_read_unlock(); } else { dst_release(dst); dst = NULL;