|
@@ -1281,7 +1281,8 @@ static struct dst_entry *ip6_dst_check(struct dst_entry *dst, u32 cookie)
|
|
|
|
|
|
rt6_dst_from_metrics_check(rt);
|
|
|
|
|
|
- if ((rt->rt6i_flags & RTF_PCPU) || unlikely(dst->flags & DST_NOCACHE))
|
|
|
+ if (rt->rt6i_flags & RTF_PCPU ||
|
|
|
+ (unlikely(dst->flags & DST_NOCACHE) && rt->dst.from))
|
|
|
return rt6_dst_from_check(rt, cookie);
|
|
|
else
|
|
|
return rt6_check(rt, cookie);
|