|
@@ -2707,6 +2707,9 @@ static inline void skb_postpull_rcsum(struct sk_buff *skb,
|
|
|
{
|
|
|
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->ip_summed = CHECKSUM_NONE;
|
|
|
}
|
|
|
|
|
|
unsigned char *skb_pull_rcsum(struct sk_buff *skb, unsigned int len);
|