|
@@ -3720,6 +3720,7 @@ normal:
|
|
net_warn_ratelimited(
|
|
net_warn_ratelimited(
|
|
"skb_segment: too many frags: %u %u\n",
|
|
"skb_segment: too many frags: %u %u\n",
|
|
pos, mss);
|
|
pos, mss);
|
|
|
|
+ err = -EINVAL;
|
|
goto err;
|
|
goto err;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -3753,11 +3754,10 @@ skip_fraglist:
|
|
|
|
|
|
perform_csum_check:
|
|
perform_csum_check:
|
|
if (!csum) {
|
|
if (!csum) {
|
|
- if (skb_has_shared_frag(nskb)) {
|
|
|
|
- err = __skb_linearize(nskb);
|
|
|
|
- if (err)
|
|
|
|
- goto err;
|
|
|
|
- }
|
|
|
|
|
|
+ if (skb_has_shared_frag(nskb) &&
|
|
|
|
+ __skb_linearize(nskb))
|
|
|
|
+ goto err;
|
|
|
|
+
|
|
if (!nskb->remcsum_offload)
|
|
if (!nskb->remcsum_offload)
|
|
nskb->ip_summed = CHECKSUM_NONE;
|
|
nskb->ip_summed = CHECKSUM_NONE;
|
|
SKB_GSO_CB(nskb)->csum =
|
|
SKB_GSO_CB(nskb)->csum =
|