diff options
author | Stefano Brivio <sbrivio@redhat.com> | 2018-10-12 17:53:58 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-10-18 00:51:13 -0400 |
commit | 7463e4f9b99c089cc962033b46349ff29f466e40 (patch) | |
tree | 6fbeefca60c20be0d9a94de89e1c14294f7a2f9d | |
parent | 0ac1077e3a549bf8d35971613e2be05bdbb41a00 (diff) |
geneve, vxlan: Don't check skb_dst() twice
Commit f15ca723c1eb ("net: don't call update_pmtu unconditionally") avoids
that we try updating PMTU for a non-existent destination, but didn't clean
up cases where the check was already explicit. Drop those redundant checks.
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Reviewed-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/geneve.c | 15 | ||||
-rw-r--r-- | drivers/net/vxlan.c | 12 |
2 files changed, 6 insertions, 21 deletions
diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c index 6acb6b5718b9..61c4bfbeb41c 100644 --- a/drivers/net/geneve.c +++ b/drivers/net/geneve.c | |||
@@ -830,12 +830,8 @@ static int geneve_xmit_skb(struct sk_buff *skb, struct net_device *dev, | |||
830 | if (IS_ERR(rt)) | 830 | if (IS_ERR(rt)) |
831 | return PTR_ERR(rt); | 831 | return PTR_ERR(rt); |
832 | 832 | ||
833 | if (skb_dst(skb)) { | 833 | skb_dst_update_pmtu(skb, dst_mtu(&rt->dst) - |
834 | int mtu = dst_mtu(&rt->dst) - GENEVE_IPV4_HLEN - | 834 | GENEVE_IPV4_HLEN - info->options_len); |
835 | info->options_len; | ||
836 | |||
837 | skb_dst_update_pmtu(skb, mtu); | ||
838 | } | ||
839 | 835 | ||
840 | sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true); | 836 | sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true); |
841 | if (geneve->collect_md) { | 837 | if (geneve->collect_md) { |
@@ -876,11 +872,8 @@ static int geneve6_xmit_skb(struct sk_buff *skb, struct net_device *dev, | |||
876 | if (IS_ERR(dst)) | 872 | if (IS_ERR(dst)) |
877 | return PTR_ERR(dst); | 873 | return PTR_ERR(dst); |
878 | 874 | ||
879 | if (skb_dst(skb)) { | 875 | skb_dst_update_pmtu(skb, dst_mtu(dst) - |
880 | int mtu = dst_mtu(dst) - GENEVE_IPV6_HLEN - info->options_len; | 876 | GENEVE_IPV6_HLEN - info->options_len); |
881 | |||
882 | skb_dst_update_pmtu(skb, mtu); | ||
883 | } | ||
884 | 877 | ||
885 | sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true); | 878 | sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true); |
886 | if (geneve->collect_md) { | 879 | if (geneve->collect_md) { |
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c index 2b8da2b7e721..22e0ce592e07 100644 --- a/drivers/net/vxlan.c +++ b/drivers/net/vxlan.c | |||
@@ -2194,11 +2194,7 @@ static void vxlan_xmit_one(struct sk_buff *skb, struct net_device *dev, | |||
2194 | } | 2194 | } |
2195 | 2195 | ||
2196 | ndst = &rt->dst; | 2196 | ndst = &rt->dst; |
2197 | if (skb_dst(skb)) { | 2197 | skb_dst_update_pmtu(skb, dst_mtu(ndst) - VXLAN_HEADROOM); |
2198 | int mtu = dst_mtu(ndst) - VXLAN_HEADROOM; | ||
2199 | |||
2200 | skb_dst_update_pmtu(skb, mtu); | ||
2201 | } | ||
2202 | 2198 | ||
2203 | tos = ip_tunnel_ecn_encap(tos, old_iph, skb); | 2199 | tos = ip_tunnel_ecn_encap(tos, old_iph, skb); |
2204 | ttl = ttl ? : ip4_dst_hoplimit(&rt->dst); | 2200 | ttl = ttl ? : ip4_dst_hoplimit(&rt->dst); |
@@ -2235,11 +2231,7 @@ static void vxlan_xmit_one(struct sk_buff *skb, struct net_device *dev, | |||
2235 | goto out_unlock; | 2231 | goto out_unlock; |
2236 | } | 2232 | } |
2237 | 2233 | ||
2238 | if (skb_dst(skb)) { | 2234 | skb_dst_update_pmtu(skb, dst_mtu(ndst) - VXLAN6_HEADROOM); |
2239 | int mtu = dst_mtu(ndst) - VXLAN6_HEADROOM; | ||
2240 | |||
2241 | skb_dst_update_pmtu(skb, mtu); | ||
2242 | } | ||
2243 | 2235 | ||
2244 | tos = ip_tunnel_ecn_encap(tos, old_iph, skb); | 2236 | tos = ip_tunnel_ecn_encap(tos, old_iph, skb); |
2245 | ttl = ttl ? : ip6_dst_hoplimit(ndst); | 2237 | ttl = ttl ? : ip6_dst_hoplimit(ndst); |