|
@@ -2853,7 +2853,7 @@ struct sk_buff *skb_segment(struct sk_buff *skb, netdev_features_t features)
|
|
doffset + tnl_hlen);
|
|
doffset + tnl_hlen);
|
|
|
|
|
|
if (fskb != skb_shinfo(skb)->frag_list)
|
|
if (fskb != skb_shinfo(skb)->frag_list)
|
|
- continue;
|
|
|
|
|
|
+ goto perform_csum_check;
|
|
|
|
|
|
if (!sg) {
|
|
if (!sg) {
|
|
nskb->ip_summed = CHECKSUM_NONE;
|
|
nskb->ip_summed = CHECKSUM_NONE;
|
|
@@ -2917,6 +2917,7 @@ skip_fraglist:
|
|
nskb->len += nskb->data_len;
|
|
nskb->len += nskb->data_len;
|
|
nskb->truesize += nskb->data_len;
|
|
nskb->truesize += nskb->data_len;
|
|
|
|
|
|
|
|
+perform_csum_check:
|
|
if (!csum) {
|
|
if (!csum) {
|
|
nskb->csum = skb_checksum(nskb, doffset,
|
|
nskb->csum = skb_checksum(nskb, doffset,
|
|
nskb->len - doffset, 0);
|
|
nskb->len - doffset, 0);
|