Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b21c034b authored by Alexander Duyck's avatar Alexander Duyck Committed by David S. Miller
Browse files

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: default avatarEric Dumazet <edumazet@google.com>
Acked-by: default avatarWillem de Bruijn <willemb@google.com>
Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent dfec0ee2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -176,7 +176,7 @@ int udp_gro_complete(struct sk_buff *skb, int nhoff, udp_lookup_t lookup);

struct sk_buff *__udp_gso_segment(struct sk_buff *gso_skb,
				  netdev_features_t features,
				  unsigned int mss, __sum16 check);
				  __sum16 check);

static inline struct udphdr *udp_gro_udphdr(struct sk_buff *skb)
{
+4 −2
Original line number Diff line number Diff line
@@ -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));
}
+1 −1
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ static struct sk_buff *__udp6_gso_segment(struct sk_buff *gso_skb,
	if (!can_checksum_protocol(features, htons(ETH_P_IPV6)))
		return ERR_PTR(-EIO);

	return __udp_gso_segment(gso_skb, features, mss,
	return __udp_gso_segment(gso_skb, features,
				 udp_v6_check(sizeof(struct udphdr) + mss,
					      &ip6h->saddr, &ip6h->daddr, 0));
}