udpv6: Fix gso_size setting in ip6_ufo_append_data
- fix gso_size setting for ipv6 fragment to be a multiple of 8 bytes. Signed-off-by: Sridhar Samudrala <sri@us.ibm.com> Acked-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
493c6be3fe
commit
c31d532690
1 changed files with 5 additions and 3 deletions
|
@ -1087,9 +1087,11 @@ static inline int ip6_ufo_append_data(struct sock *sk,
|
|||
if (!err) {
|
||||
struct frag_hdr fhdr;
|
||||
|
||||
/* specify the length of each IP datagram fragment*/
|
||||
skb_shinfo(skb)->gso_size = mtu - fragheaderlen -
|
||||
sizeof(struct frag_hdr);
|
||||
/* Specify the length of each IPv6 datagram fragment.
|
||||
* It has to be a multiple of 8.
|
||||
*/
|
||||
skb_shinfo(skb)->gso_size = (mtu - fragheaderlen -
|
||||
sizeof(struct frag_hdr)) & ~7;
|
||||
skb_shinfo(skb)->gso_type = SKB_GSO_UDP;
|
||||
ipv6_select_ident(skb, &fhdr);
|
||||
skb_shinfo(skb)->ip6_frag_id = fhdr.identification;
|
||||
|
|
Loading…
Reference in a new issue