diff options
Diffstat (limited to 'drivers/net/geneve.c')
-rw-r--r-- | drivers/net/geneve.c | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c index 82eccc930c5c..a0cd1c41cf5f 100644 --- a/drivers/net/geneve.c +++ b/drivers/net/geneve.c | |||
@@ -831,12 +831,8 @@ static int geneve_xmit_skb(struct sk_buff *skb, struct net_device *dev, | |||
831 | if (IS_ERR(rt)) | 831 | if (IS_ERR(rt)) |
832 | return PTR_ERR(rt); | 832 | return PTR_ERR(rt); |
833 | 833 | ||
834 | if (skb_dst(skb)) { | 834 | skb_tunnel_check_pmtu(skb, &rt->dst, |
835 | int mtu = dst_mtu(&rt->dst) - GENEVE_IPV4_HLEN - | 835 | GENEVE_IPV4_HLEN + info->options_len); |
836 | info->options_len; | ||
837 | |||
838 | skb_dst_update_pmtu(skb, mtu); | ||
839 | } | ||
840 | 836 | ||
841 | sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true); | 837 | sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true); |
842 | if (geneve->collect_md) { | 838 | if (geneve->collect_md) { |
@@ -881,11 +877,7 @@ static int geneve6_xmit_skb(struct sk_buff *skb, struct net_device *dev, | |||
881 | if (IS_ERR(dst)) | 877 | if (IS_ERR(dst)) |
882 | return PTR_ERR(dst); | 878 | return PTR_ERR(dst); |
883 | 879 | ||
884 | if (skb_dst(skb)) { | 880 | skb_tunnel_check_pmtu(skb, dst, GENEVE_IPV6_HLEN + info->options_len); |
885 | int mtu = dst_mtu(dst) - GENEVE_IPV6_HLEN - info->options_len; | ||
886 | |||
887 | skb_dst_update_pmtu(skb, mtu); | ||
888 | } | ||
889 | 881 | ||
890 | sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true); | 882 | sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true); |
891 | if (geneve->collect_md) { | 883 | if (geneve->collect_md) { |