diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2015-04-27 23:43:15 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-04-29 14:43:22 -0400 |
commit | cb6ccf09d6b94bec4def1ac5cf4678d12b216474 (patch) | |
tree | db344aebfcff1eb32f1421b60ca3c011f7bd7cb1 | |
parent | 39376ccb1968ba9f83e2a880a8bf02ad5dea44e1 (diff) |
route: Use ipv4_mtu instead of raw rt_pmtu
The commit 3cdaa5be9e81a914e633a6be7b7d2ef75b528562 ("ipv4: Don't
increase PMTU with Datagram Too Big message") broke PMTU in cases
where the rt_pmtu value has expired but is smaller than the new
PMTU value.
This obsolete rt_pmtu then prevents the new PMTU value from being
installed.
Fixes: 3cdaa5be9e81 ("ipv4: Don't increase PMTU with Datagram Too Big message")
Reported-by: Gerd v. Egidy <gerd.von.egidy@intra2net.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/ipv4/route.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index a78540f28276..bff62fc87b8e 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c | |||
@@ -962,10 +962,7 @@ static void __ip_rt_update_pmtu(struct rtable *rt, struct flowi4 *fl4, u32 mtu) | |||
962 | if (dst_metric_locked(dst, RTAX_MTU)) | 962 | if (dst_metric_locked(dst, RTAX_MTU)) |
963 | return; | 963 | return; |
964 | 964 | ||
965 | if (dst->dev->mtu < mtu) | 965 | if (ipv4_mtu(dst) < mtu) |
966 | return; | ||
967 | |||
968 | if (rt->rt_pmtu && rt->rt_pmtu < mtu) | ||
969 | return; | 966 | return; |
970 | 967 | ||
971 | if (mtu < ip_rt_min_pmtu) | 968 | if (mtu < ip_rt_min_pmtu) |