netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] udp: fix gso_segs calculations
@ 2019-09-30 22:11 Josh Hunt
  2019-09-30 22:11 ` [PATCH 2/2] udp: only do GSO if # of segs > 1 Josh Hunt
  2019-09-30 23:51 ` [PATCH 1/2] udp: fix gso_segs calculations Alexander Duyck
  0 siblings, 2 replies; 11+ messages in thread
From: Josh Hunt @ 2019-09-30 22:11 UTC (permalink / raw)
  To: davem; +Cc: netdev, edumazet, willemb, alexander.h.duyck, Josh Hunt

Commit dfec0ee22c0a ("udp: Record gso_segs when supporting UDP segmentation offload")
added gso_segs calculation, but incorrectly got sizeof() the pointer and
not the underlying data type. It also does not account for v6 UDP GSO segs.

Fixes: dfec0ee22c0a ("udp: Record gso_segs when supporting UDP segmentation offload")
Signed-off-by: Josh Hunt <johunt@akamai.com>
---
 net/ipv4/udp.c | 2 +-
 net/ipv6/udp.c | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index cf755156a684..be98d0b8f014 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -856,7 +856,7 @@ static int udp_send_skb(struct sk_buff *skb, struct flowi4 *fl4,
 
 		skb_shinfo(skb)->gso_size = cork->gso_size;
 		skb_shinfo(skb)->gso_type = SKB_GSO_UDP_L4;
-		skb_shinfo(skb)->gso_segs = DIV_ROUND_UP(len - sizeof(uh),
+		skb_shinfo(skb)->gso_segs = DIV_ROUND_UP(len - sizeof(*uh),
 							 cork->gso_size);
 		goto csum_partial;
 	}
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
index aae4938f3dea..eb9a9934ac05 100644
--- a/net/ipv6/udp.c
+++ b/net/ipv6/udp.c
@@ -1143,6 +1143,8 @@ static int udp_v6_send_skb(struct sk_buff *skb, struct flowi6 *fl6,
 
 		skb_shinfo(skb)->gso_size = cork->gso_size;
 		skb_shinfo(skb)->gso_type = SKB_GSO_UDP_L4;
+		skb_shinfo(skb)->gso_segs = DIV_ROUND_UP(len - sizeof(*uh),
+							 cork->gso_size);
 		goto csum_partial;
 	}
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2019-10-01 15:09 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-30 22:11 [PATCH 1/2] udp: fix gso_segs calculations Josh Hunt
2019-09-30 22:11 ` [PATCH 2/2] udp: only do GSO if # of segs > 1 Josh Hunt
2019-09-30 23:56   ` Alexander Duyck
2019-10-01 12:22     ` Willem de Bruijn
2019-10-01 15:08       ` Josh Hunt
2019-10-01 14:36     ` Josh Hunt
2019-10-01 15:05       ` Alexander Duyck
2019-09-30 23:51 ` [PATCH 1/2] udp: fix gso_segs calculations Alexander Duyck
2019-10-01 12:12   ` Willem de Bruijn
2019-10-01 14:31     ` Josh Hunt
2019-10-01 14:31   ` Josh Hunt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).