|
@@ -479,12 +479,9 @@ static void ip6_frag_queue(struct frag_queue *fq, struct sk_buff *skb,
|
|
|
/* Point into the IP datagram 'data' part. */
|
|
|
if (!pskb_pull(skb, (u8 *) (fhdr + 1) - skb->data))
|
|
|
goto err;
|
|
|
- if (end-offset < skb->len) {
|
|
|
- if (pskb_trim(skb, end - offset))
|
|
|
- goto err;
|
|
|
- if (skb->ip_summed != CHECKSUM_UNNECESSARY)
|
|
|
- skb->ip_summed = CHECKSUM_NONE;
|
|
|
- }
|
|
|
+
|
|
|
+ if (pskb_trim_rcsum(skb, end - offset))
|
|
|
+ goto err;
|
|
|
|
|
|
/* Find out which fragments are in front and at the back of us
|
|
|
* in the chain of fragments so far. We must know where to put
|