Message ID | 1443698177.3401.1.camel@gmail.com |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
On Thu, Oct 01, 2015 at 01:16:17PM +0200, Mike Galbraith wrote: > > > If this patch is indeed causing the regression you should be able > > to spot some differences in the tcpdump. Can you confirm this? > > Will this work instead? Thanks! Looks like the patch wasn't thought through. It's testing the offset after the pull but treating it as the offset before the pull. I'll send you a patch in a couple of minutes. Cheers,
--- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -2708,8 +2708,10 @@ static inline void skb_postpull_rcsum(st if (skb->ip_summed == CHECKSUM_COMPLETE) skb->csum = csum_sub(skb->csum, csum_partial(start, len, 0)); else if (skb->ip_summed == CHECKSUM_PARTIAL && - skb_checksum_start_offset(skb) <= len) + skb_checksum_start_offset(skb) <= len) { skb->ip_summed = CHECKSUM_NONE; + trace_printk("skb_checksum_start_offset(skb) = %d len = %u\n", skb_checksum_start_offset(skb), len); + } } unsigned char *skb_pull_rcsum(struct sk_buff *skb, unsigned int len);