Commit cb6ccf09 authored by Herbert Xu's avatar Herbert Xu Committed by David S. Miller

route: Use ipv4_mtu instead of raw rt_pmtu

The commit 3cdaa5be ("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: 3cdaa5be ("ipv4: Don't increase PMTU with Datagram Too Big message")
Reported-by: default avatarGerd v. Egidy <gerd.von.egidy@intra2net.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 39376ccb
...@@ -962,10 +962,7 @@ static void __ip_rt_update_pmtu(struct rtable *rt, struct flowi4 *fl4, u32 mtu) ...@@ -962,10 +962,7 @@ static void __ip_rt_update_pmtu(struct rtable *rt, struct flowi4 *fl4, u32 mtu)
if (dst_metric_locked(dst, RTAX_MTU)) if (dst_metric_locked(dst, RTAX_MTU))
return; return;
if (dst->dev->mtu < mtu) if (ipv4_mtu(dst) < mtu)
return;
if (rt->rt_pmtu && rt->rt_pmtu < mtu)
return; return;
if (mtu < ip_rt_min_pmtu) if (mtu < ip_rt_min_pmtu)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment