From: Maciej Żenczykowski <m...@google.com> This is basically just a refactor.
But it does affect (a presumably buggy) call site in: net/netfilter/nf_flow_table_core.c flow_offload_fill_route() Signed-off-by: Maciej Żenczykowski <m...@google.com> --- include/net/ip6_route.h | 4 ++-- net/ipv6/ip6_output.c | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h index 598415743f46..25c113dd88ea 100644 --- a/include/net/ip6_route.h +++ b/include/net/ip6_route.h @@ -313,14 +313,14 @@ static inline unsigned int ip6_dst_mtu_forward(const struct dst_entry *dst) struct inet6_dev *idev; unsigned int mtu = dst_metric_raw(dst, RTAX_MTU); if (mtu) - return mtu; + return max(mtu, (unsigned)IPV6_MIN_MTU); rcu_read_lock(); idev = __in6_dev_get(dst->dev); mtu = idev ? idev->cnf.mtu6 : IPV6_MIN_MTU; rcu_read_unlock(); - return mtu; + return max(mtu, (unsigned)IPV6_MIN_MTU); } u32 ip6_mtu_from_fib6(const struct fib6_result *res, diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index c78e67d7747f..bc85f92adaf9 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -540,8 +540,6 @@ int ip6_forward(struct sk_buff *skb) } mtu = ip6_dst_mtu_forward(dst); - if (mtu < IPV6_MIN_MTU) - mtu = IPV6_MIN_MTU; if (ip6_pkt_too_big(skb, mtu)) { /* Again, force OUTPUT device used as source address */ -- 2.28.0.806.g8561365e88-goog