diff options
author | Alexander Duyck <alexander.h.duyck@intel.com> | 2018-05-07 21:08:28 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-05-09 05:30:06 +0300 |
commit | b21c034b3df833b5d9db1cfdc3938dbb0d7995c6 (patch) | |
tree | 8c9b1963de39e3d79a6ea5e6f80f0c5b4e528f6d /net/ipv4/udp_offload.c | |
parent | dfec0ee22c0a4488e4f4c764b2720d3096920383 (diff) | |
download | linux-b21c034b3df833b5d9db1cfdc3938dbb0d7995c6.tar.xz |
udp: Do not pass MSS as parameter to GSO segmentation
There is no point in passing MSS as a parameter for for the GSO
segmentation call as it is already available via the shared info for the
skb itself.
Reviewed-by: Eric Dumazet <edumazet@google.com>
Acked-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/udp_offload.c')
-rw-r--r-- | net/ipv4/udp_offload.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/ipv4/udp_offload.c b/net/ipv4/udp_offload.c index 006257092f06..c1afcd2f1a76 100644 --- a/net/ipv4/udp_offload.c +++ b/net/ipv4/udp_offload.c @@ -189,14 +189,16 @@ EXPORT_SYMBOL(skb_udp_tunnel_segment); struct sk_buff *__udp_gso_segment(struct sk_buff *gso_skb, netdev_features_t features, - unsigned int mss, __sum16 check) + __sum16 check) { struct sock *sk = gso_skb->sk; unsigned int sum_truesize = 0; struct sk_buff *segs, *seg; unsigned int hdrlen; struct udphdr *uh; + unsigned int mss; + mss = skb_shinfo(gso_skb)->gso_size; if (gso_skb->len <= sizeof(*uh) + mss) return ERR_PTR(-EINVAL); @@ -244,7 +246,7 @@ static struct sk_buff *__udp4_gso_segment(struct sk_buff *gso_skb, if (!can_checksum_protocol(features, htons(ETH_P_IP))) return ERR_PTR(-EIO); - return __udp_gso_segment(gso_skb, features, mss, + return __udp_gso_segment(gso_skb, features, udp_v4_check(sizeof(struct udphdr) + mss, iph->saddr, iph->daddr, 0)); } |