diff --git a/[refs] b/[refs] index dee95646e604..3981e60df17f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: af3e5bd5f650163c2e12297f572910a1af1b8236 +refs/heads/master: d3052b557a1c94c21f50465702fa886753ce6b43 diff --git a/trunk/net/ipv6/route.c b/trunk/net/ipv6/route.c index 96455ffb76fb..7659d6f16e6b 100644 --- a/trunk/net/ipv6/route.c +++ b/trunk/net/ipv6/route.c @@ -1565,11 +1565,16 @@ static void rt6_do_pmtu_disc(struct in6_addr *daddr, struct in6_addr *saddr, { struct rt6_info *rt, *nrt; int allfrag = 0; - +again: rt = rt6_lookup(net, daddr, saddr, ifindex, 0); if (rt == NULL) return; + if (rt6_check_expired(rt)) { + ip6_del_rt(rt); + goto again; + } + if (pmtu >= dst_mtu(&rt->dst)) goto out;