udp: fix gso_segs calculations
Commitdfec0ee22c
("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. In addition let's fix the v6 case. Fixes:bec1f6f697
("udp: generate gso with UDP_SEGMENT") Fixes:dfec0ee22c
("udp: Record gso_segs when supporting UDP segmentation offload") Signed-off-by: Josh Hunt <johunt@akamai.com> Reviewed-by: Alexander Duyck <alexander.h.duyck@linux.intel.com> Acked-by: Willem de Bruijn <willemb@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
6af1799aaf
commit
44b321e502
|
@ -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_size = cork->gso_size;
|
||||||
skb_shinfo(skb)->gso_type = SKB_GSO_UDP_L4;
|
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);
|
cork->gso_size);
|
||||||
goto csum_partial;
|
goto csum_partial;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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_size = cork->gso_size;
|
||||||
skb_shinfo(skb)->gso_type = SKB_GSO_UDP_L4;
|
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;
|
goto csum_partial;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue