Lines Matching refs:head

383 	struct sk_buff *fp, *head = fq->q.fragments;  in ip6_frag_reasm()  local
397 head = prev->next; in ip6_frag_reasm()
398 fp = skb_clone(head, GFP_ATOMIC); in ip6_frag_reasm()
403 fp->next = head->next; in ip6_frag_reasm()
408 skb_morph(head, fq->q.fragments); in ip6_frag_reasm()
409 head->next = fq->q.fragments->next; in ip6_frag_reasm()
412 fq->q.fragments = head; in ip6_frag_reasm()
415 WARN_ON(head == NULL); in ip6_frag_reasm()
416 WARN_ON(FRAG6_CB(head)->offset != 0); in ip6_frag_reasm()
419 payload_len = ((head->data - skb_network_header(head)) - in ip6_frag_reasm()
426 if (skb_unclone(head, GFP_ATOMIC)) in ip6_frag_reasm()
432 if (skb_has_frag_list(head)) { in ip6_frag_reasm()
439 clone->next = head->next; in ip6_frag_reasm()
440 head->next = clone; in ip6_frag_reasm()
441 skb_shinfo(clone)->frag_list = skb_shinfo(head)->frag_list; in ip6_frag_reasm()
442 skb_frag_list_init(head); in ip6_frag_reasm()
443 for (i = 0; i < skb_shinfo(head)->nr_frags; i++) in ip6_frag_reasm()
444 plen += skb_frag_size(&skb_shinfo(head)->frags[i]); in ip6_frag_reasm()
445 clone->len = clone->data_len = head->data_len - plen; in ip6_frag_reasm()
446 head->data_len -= clone->len; in ip6_frag_reasm()
447 head->len -= clone->len; in ip6_frag_reasm()
449 clone->ip_summed = head->ip_summed; in ip6_frag_reasm()
456 skb_network_header(head)[nhoff] = skb_transport_header(head)[0]; in ip6_frag_reasm() local
457 memmove(head->head + sizeof(struct frag_hdr), head->head, in ip6_frag_reasm()
458 (head->data - head->head) - sizeof(struct frag_hdr)); in ip6_frag_reasm()
459 head->mac_header += sizeof(struct frag_hdr); in ip6_frag_reasm()
460 head->network_header += sizeof(struct frag_hdr); in ip6_frag_reasm()
462 skb_reset_transport_header(head); in ip6_frag_reasm()
463 skb_push(head, head->data - skb_network_header(head)); in ip6_frag_reasm()
465 sum_truesize = head->truesize; in ip6_frag_reasm()
466 for (fp = head->next; fp;) { in ip6_frag_reasm()
472 if (head->ip_summed != fp->ip_summed) in ip6_frag_reasm()
473 head->ip_summed = CHECKSUM_NONE; in ip6_frag_reasm()
474 else if (head->ip_summed == CHECKSUM_COMPLETE) in ip6_frag_reasm()
475 head->csum = csum_add(head->csum, fp->csum); in ip6_frag_reasm()
477 if (skb_try_coalesce(head, fp, &headstolen, &delta)) { in ip6_frag_reasm()
480 if (!skb_shinfo(head)->frag_list) in ip6_frag_reasm()
481 skb_shinfo(head)->frag_list = fp; in ip6_frag_reasm()
482 head->data_len += fp->len; in ip6_frag_reasm()
483 head->len += fp->len; in ip6_frag_reasm()
484 head->truesize += fp->truesize; in ip6_frag_reasm()
490 head->next = NULL; in ip6_frag_reasm()
491 head->dev = dev; in ip6_frag_reasm()
492 head->tstamp = fq->q.stamp; in ip6_frag_reasm()
493 ipv6_hdr(head)->payload_len = htons(payload_len); in ip6_frag_reasm()
494 ipv6_change_dsfield(ipv6_hdr(head), 0xff, ecn); in ip6_frag_reasm()
495 IP6CB(head)->nhoff = nhoff; in ip6_frag_reasm()
496 IP6CB(head)->flags |= IP6SKB_FRAGMENTED; in ip6_frag_reasm()
499 skb_postpush_rcsum(head, skb_network_header(head), in ip6_frag_reasm()
500 skb_network_header_len(head)); in ip6_frag_reasm()