diff options
Diffstat (limited to 'net/ipv4/af_inet.c')
-rw-r--r-- | net/ipv4/af_inet.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index 15847e19b7dd..68f6a94f7661 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c | |||
@@ -1332,8 +1332,10 @@ static struct sk_buff *inet_gso_segment(struct sk_buff *skb, | |||
1332 | if (skb->next != NULL) | 1332 | if (skb->next != NULL) |
1333 | iph->frag_off |= htons(IP_MF); | 1333 | iph->frag_off |= htons(IP_MF); |
1334 | offset += (skb->len - skb->mac_len - iph->ihl * 4); | 1334 | offset += (skb->len - skb->mac_len - iph->ihl * 4); |
1335 | } else | 1335 | } else { |
1336 | iph->id = htons(id++); | 1336 | if (!(iph->frag_off & htons(IP_DF))) |
1337 | iph->id = htons(id++); | ||
1338 | } | ||
1337 | iph->tot_len = htons(skb->len - skb->mac_len); | 1339 | iph->tot_len = htons(skb->len - skb->mac_len); |
1338 | iph->check = 0; | 1340 | iph->check = 0; |
1339 | iph->check = ip_fast_csum(skb_network_header(skb), iph->ihl); | 1341 | iph->check = ip_fast_csum(skb_network_header(skb), iph->ihl); |