Message ID | 0726e9078aea71d7f6332b4639985565c5e6491b.1477649881.git.lucien.xin@gmail.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Xin Long <lucien.xin@gmail.com> Date: Fri, 28 Oct 2016 18:18:01 +0800 > Prior to this patch, ipv6 didn't do mtu lock check in ip6_update_pmtu. > It leaded to that mtu lock doesn't really work when receiving the pkt > of ICMPV6_PKT_TOOBIG. > > This patch is to add mtu lock check in __ip6_rt_update_pmtu just as ipv4 > did in __ip_rt_update_pmtu. > > Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org> > Signed-off-by: Xin Long <lucien.xin@gmail.com> Applied, thank you.
diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 947ed1d..7403d90 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -1364,6 +1364,9 @@ static void __ip6_rt_update_pmtu(struct dst_entry *dst, const struct sock *sk, if (rt6->rt6i_flags & RTF_LOCAL) return; + if (dst_metric_locked(dst, RTAX_MTU)) + return; + dst_confirm(dst); mtu = max_t(u32, mtu, IPV6_MIN_MTU); if (mtu >= dst_mtu(dst))