From: Linus Lüssing <redacted>
Date: Mon, 15 Feb 2016 03:07:06 +0100
quoted hunk ↗ jump to hunk
@@ -4084,10 +4089,22 @@ struct sk_buff *skb_checksum_trimmed(struct sk_buff *skb,
if (!pskb_may_pull(skb_chk, offset))
goto err;
- __skb_pull(skb_chk, offset);
+ ip_summed = skb->ip_summed;
+ csum_valid = skb->csum_valid;
+ csum_level = skb->csum_level;
+ csum_bad = skb->csum_bad;
+ csum = skb->csum;
+
+ skb_pull_rcsum(skb_chk, offset);
ret = skb_chkf(skb_chk);
__skb_push(skb_chk, offset);
+ skb->ip_summed = ip_summed;
+ skb->csum_valid = csum_valid;
+ skb->csum_level = csum_level;
+ skb->csum_bad = csum_bad;
+ skb->csum = csum;
+
There really has to be a better way to fix this :-/