diff options
Diffstat (limited to 'net/core/skbuff.c')
-rw-r--r-- | net/core/skbuff.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index e48e5c02e877..700189604f3d 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c | |||
@@ -3013,7 +3013,7 @@ struct sk_buff *skb_segment(struct sk_buff *head_skb, | |||
3013 | if (nskb->len == len + doffset) | 3013 | if (nskb->len == len + doffset) |
3014 | goto perform_csum_check; | 3014 | goto perform_csum_check; |
3015 | 3015 | ||
3016 | if (!sg) { | 3016 | if (!sg && !nskb->remcsum_offload) { |
3017 | nskb->ip_summed = CHECKSUM_NONE; | 3017 | nskb->ip_summed = CHECKSUM_NONE; |
3018 | nskb->csum = skb_copy_and_csum_bits(head_skb, offset, | 3018 | nskb->csum = skb_copy_and_csum_bits(head_skb, offset, |
3019 | skb_put(nskb, len), | 3019 | skb_put(nskb, len), |
@@ -3085,7 +3085,7 @@ skip_fraglist: | |||
3085 | nskb->truesize += nskb->data_len; | 3085 | nskb->truesize += nskb->data_len; |
3086 | 3086 | ||
3087 | perform_csum_check: | 3087 | perform_csum_check: |
3088 | if (!csum) { | 3088 | if (!csum && !nskb->remcsum_offload) { |
3089 | nskb->csum = skb_checksum(nskb, doffset, | 3089 | nskb->csum = skb_checksum(nskb, doffset, |
3090 | nskb->len - doffset, 0); | 3090 | nskb->len - doffset, 0); |
3091 | nskb->ip_summed = CHECKSUM_NONE; | 3091 | nskb->ip_summed = CHECKSUM_NONE; |