Lines Matching refs:offset
2110 int offset = skb_headlen(skb); in ___pskb_trim() local
2120 if (offset >= len) in ___pskb_trim()
2124 int end = offset + skb_frag_size(&skb_shinfo(skb)->frags[i]); in ___pskb_trim()
2127 offset = end; in ___pskb_trim()
2131 skb_frag_size_set(&skb_shinfo(skb)->frags[i++], len - offset); in ___pskb_trim()
2146 int end = offset + frag->len; in ___pskb_trim()
2162 offset = end; in ___pskb_trim()
2167 unlikely((err = pskb_trim(frag, len - offset)))) in ___pskb_trim()
2203 int offset = skb_checksum_start_offset(skb) + skb->csum_offset; in pskb_trim_rcsum_slow() local
2205 if (offset + sizeof(__sum16) > hdlen) in pskb_trim_rcsum_slow()
2378 int skb_copy_bits(const struct sk_buff *skb, int offset, void *to, int len) in skb_copy_bits() argument
2384 if (offset > (int)skb->len - len) in skb_copy_bits()
2388 if ((copy = start - offset) > 0) { in skb_copy_bits()
2391 skb_copy_from_linear_data_offset(skb, offset, to, copy); in skb_copy_bits()
2394 offset += copy; in skb_copy_bits()
2402 WARN_ON(start > offset + len); in skb_copy_bits()
2405 if ((copy = end - offset) > 0) { in skb_copy_bits()
2414 skb_frag_off(f) + offset - start, in skb_copy_bits()
2423 offset += copy; in skb_copy_bits()
2432 WARN_ON(start > offset + len); in skb_copy_bits()
2435 if ((copy = end - offset) > 0) { in skb_copy_bits()
2438 if (skb_copy_bits(frag_iter, offset - start, to, copy)) in skb_copy_bits()
2442 offset += copy; in skb_copy_bits()
2466 unsigned int *offset, in linear_to_page() argument
2474 *len = min_t(unsigned int, *len, pfrag->size - pfrag->offset); in linear_to_page()
2476 memcpy(page_address(pfrag->page) + pfrag->offset, in linear_to_page()
2477 page_address(page) + *offset, *len); in linear_to_page()
2478 *offset = pfrag->offset; in linear_to_page()
2479 pfrag->offset += *len; in linear_to_page()
2486 unsigned int offset) in spd_can_coalesce() argument
2490 (spd->partial[spd->nr_pages - 1].offset + in spd_can_coalesce()
2491 spd->partial[spd->nr_pages - 1].len == offset); in spd_can_coalesce()
2499 unsigned int *len, unsigned int offset, in spd_fill_page() argument
2507 page = linear_to_page(page, len, &offset, sk); in spd_fill_page()
2511 if (spd_can_coalesce(spd, page, offset)) { in spd_fill_page()
2518 spd->partial[spd->nr_pages].offset = offset; in spd_fill_page()
2564 unsigned int *offset, unsigned int *len, in __skb_splice_bits() argument
2578 offset, len, spd, in __skb_splice_bits()
2591 offset, len, spd, false, sk, pipe)) in __skb_splice_bits()
2596 if (*offset >= iter->len) { in __skb_splice_bits()
2597 *offset -= iter->len; in __skb_splice_bits()
2604 if (__skb_splice_bits(iter, pipe, offset, len, spd, sk)) in __skb_splice_bits()
2615 int skb_splice_bits(struct sk_buff *skb, struct sock *sk, unsigned int offset, in skb_splice_bits() argument
2630 __skb_splice_bits(skb, pipe, &offset, &tlen, &spd, sk); in skb_splice_bits()
2649 static int sendpage_unlocked(struct sock *sk, struct page *page, int offset, in sendpage_unlocked() argument
2656 return kernel_sendpage(sock, page, offset, size, flags); in sendpage_unlocked()
2661 typedef int (*sendpage_func)(struct sock *sk, struct page *page, int offset,
2663 static int __skb_send_sock(struct sock *sk, struct sk_buff *skb, int offset, in __skb_send_sock() argument
2674 while (offset < skb_headlen(skb) && len) { in __skb_send_sock()
2678 slen = min_t(int, len, skb_headlen(skb) - offset); in __skb_send_sock()
2679 kv.iov_base = skb->data + offset; in __skb_send_sock()
2689 offset += ret; in __skb_send_sock()
2698 offset -= skb_headlen(skb); in __skb_send_sock()
2704 if (offset < skb_frag_size(frag)) in __skb_send_sock()
2707 offset -= skb_frag_size(frag); in __skb_send_sock()
2713 slen = min_t(size_t, len, skb_frag_size(frag) - offset); in __skb_send_sock()
2719 skb_frag_off(frag) + offset, in __skb_send_sock()
2725 offset += ret; in __skb_send_sock()
2729 offset = 0; in __skb_send_sock()
2754 int skb_send_sock_locked(struct sock *sk, struct sk_buff *skb, int offset, in skb_send_sock_locked() argument
2757 return __skb_send_sock(sk, skb, offset, len, kernel_sendmsg_locked, in skb_send_sock_locked()
2763 int skb_send_sock(struct sock *sk, struct sk_buff *skb, int offset, int len) in skb_send_sock() argument
2765 return __skb_send_sock(sk, skb, offset, len, sendmsg_unlocked, in skb_send_sock()
2781 int skb_store_bits(struct sk_buff *skb, int offset, const void *from, int len) in skb_store_bits() argument
2787 if (offset > (int)skb->len - len) in skb_store_bits()
2790 if ((copy = start - offset) > 0) { in skb_store_bits()
2793 skb_copy_to_linear_data_offset(skb, offset, from, copy); in skb_store_bits()
2796 offset += copy; in skb_store_bits()
2804 WARN_ON(start > offset + len); in skb_store_bits()
2807 if ((copy = end - offset) > 0) { in skb_store_bits()
2816 skb_frag_off(frag) + offset - start, in skb_store_bits()
2825 offset += copy; in skb_store_bits()
2834 WARN_ON(start > offset + len); in skb_store_bits()
2837 if ((copy = end - offset) > 0) { in skb_store_bits()
2840 if (skb_store_bits(frag_iter, offset - start, in skb_store_bits()
2845 offset += copy; in skb_store_bits()
2859 __wsum __skb_checksum(const struct sk_buff *skb, int offset, int len, in __skb_checksum() argument
2863 int i, copy = start - offset; in __skb_checksum()
2872 skb->data + offset, copy, csum); in __skb_checksum()
2875 offset += copy; in __skb_checksum()
2883 WARN_ON(start > offset + len); in __skb_checksum()
2886 if ((copy = end - offset) > 0) { in __skb_checksum()
2896 skb_frag_off(frag) + offset - start, in __skb_checksum()
2911 offset += copy; in __skb_checksum()
2919 WARN_ON(start > offset + len); in __skb_checksum()
2922 if ((copy = end - offset) > 0) { in __skb_checksum()
2926 csum2 = __skb_checksum(frag_iter, offset - start, in __skb_checksum()
2932 offset += copy; in __skb_checksum()
2943 __wsum skb_checksum(const struct sk_buff *skb, int offset, in skb_checksum() argument
2951 return __skb_checksum(skb, offset, len, csum, &ops); in skb_checksum()
2957 __wsum skb_copy_and_csum_bits(const struct sk_buff *skb, int offset, in skb_copy_and_csum_bits() argument
2961 int i, copy = start - offset; in skb_copy_and_csum_bits()
2970 csum = csum_partial_copy_nocheck(skb->data + offset, to, in skb_copy_and_csum_bits()
2974 offset += copy; in skb_copy_and_csum_bits()
2982 WARN_ON(start > offset + len); in skb_copy_and_csum_bits()
2985 if ((copy = end - offset) > 0) { in skb_copy_and_csum_bits()
2996 skb_frag_off(frag) + offset - start, in skb_copy_and_csum_bits()
3009 offset += copy; in skb_copy_and_csum_bits()
3019 WARN_ON(start > offset + len); in skb_copy_and_csum_bits()
3022 if ((copy = end - offset) > 0) { in skb_copy_and_csum_bits()
3026 offset - start, in skb_copy_and_csum_bits()
3031 offset += copy; in skb_copy_and_csum_bits()
3110 int offset, int len) in warn_crc32c_csum_combine() argument
3179 unsigned int offset; in skb_zerocopy() local
3196 offset = from->data - (unsigned char *)page_address(page); in skb_zerocopy()
3197 __skb_fill_page_desc(to, 0, page, offset, plen); in skb_zerocopy()
3800 static unsigned int skb_ts_get_next_block(unsigned int offset, const u8 **text, in skb_ts_get_next_block() argument
3804 return skb_seq_read(offset, text, TS_SKB_CB(state)); in skb_ts_get_next_block()
3843 int offset, size_t size) in skb_append_pagefrags() argument
3847 if (skb_can_coalesce(skb, i, page, offset)) { in skb_append_pagefrags()
3851 skb_fill_page_desc_noacc(skb, i, page, offset, size); in skb_append_pagefrags()
3897 unsigned int offset) in skb_segment_list() argument
3907 skb_push(skb, -skb_network_offset(skb) + offset); in skb_segment_list()
3947 skb_push(nskb, -skb_network_offset(nskb) + offset); in skb_segment_list()
3957 offset + tnl_hlen); in skb_segment_list()
4030 unsigned int offset = doffset; in skb_segment() local
4135 len = head_skb->len - offset; in skb_segment()
4140 hsize = skb_headlen(head_skb) - offset; in skb_segment()
4156 while (pos < offset + len) { in skb_segment()
4160 if (pos + size > offset + len) in skb_segment()
4224 skb_copy_and_csum_bits(head_skb, offset, in skb_segment()
4231 if (skb_copy_bits(head_skb, offset, skb_put(nskb, len), len)) in skb_segment()
4239 skb_copy_from_linear_data_offset(head_skb, offset, in skb_segment()
4248 while (pos < offset + len) { in skb_segment()
4285 if (pos < offset) { in skb_segment()
4286 skb_frag_off_add(nskb_frag, offset - pos); in skb_segment()
4287 skb_frag_size_sub(nskb_frag, offset - pos); in skb_segment()
4292 if (pos + size <= offset + len) { in skb_segment()
4297 skb_frag_size_sub(nskb_frag, pos + size - (offset + len)); in skb_segment()
4323 } while ((offset += len) < head_skb->len); in skb_segment()
4376 unsigned int offset = skb_gro_offset(skb); in skb_gro_receive() local
4389 if (headlen <= offset) { in skb_gro_receive()
4398 offset -= headlen; in skb_gro_receive()
4408 skb_frag_off_add(frag, offset); in skb_gro_receive()
4409 skb_frag_size_sub(frag, offset); in skb_gro_receive()
4425 unsigned int first_size = headlen - offset; in skb_gro_receive()
4433 offset; in skb_gro_receive()
4455 if (offset > headlen) { in skb_gro_receive()
4456 unsigned int eat = offset - headlen; in skb_gro_receive()
4462 offset = headlen; in skb_gro_receive()
4465 __skb_pull(skb, offset); in skb_gro_receive()
4559 __skb_to_sgvec(struct sk_buff *skb, struct scatterlist *sg, int offset, int len, in __skb_to_sgvec() argument
4563 int i, copy = start - offset; in __skb_to_sgvec()
4573 sg_set_buf(sg, skb->data + offset, copy); in __skb_to_sgvec()
4577 offset += copy; in __skb_to_sgvec()
4583 WARN_ON(start > offset + len); in __skb_to_sgvec()
4586 if ((copy = end - offset) > 0) { in __skb_to_sgvec()
4594 skb_frag_off(frag) + offset - start); in __skb_to_sgvec()
4598 offset += copy; in __skb_to_sgvec()
4606 WARN_ON(start > offset + len); in __skb_to_sgvec()
4609 if ((copy = end - offset) > 0) { in __skb_to_sgvec()
4615 ret = __skb_to_sgvec(frag_iter, sg+elt, offset - start, in __skb_to_sgvec()
4622 offset += copy; in __skb_to_sgvec()
4642 int skb_to_sgvec(struct sk_buff *skb, struct scatterlist *sg, int offset, int len) in skb_to_sgvec() argument
4644 int nsg = __skb_to_sgvec(skb, sg, offset, len, 0); in skb_to_sgvec()
4675 int offset, int len) in skb_to_sgvec_nomark() argument
4677 return __skb_to_sgvec(skb, sg, offset, len, 0); in skb_to_sgvec_nomark()
5377 unsigned int offset = skb_transport_offset(skb); in skb_checksum_trimmed() local
5384 if (!pskb_may_pull(skb_chk, offset)) in skb_checksum_trimmed()
5387 skb_pull_rcsum(skb_chk, offset); in skb_checksum_trimmed()
5389 skb_push_rcsum(skb_chk, offset); in skb_checksum_trimmed()
5471 unsigned int offset; in skb_try_coalesce() local
5483 offset = from->data - (unsigned char *)page_address(page); in skb_try_coalesce()
5486 page, offset, skb_headlen(from)); in skb_try_coalesce()
5784 int offset = skb->data - skb_mac_header(skb); in __skb_vlan_pop() local
5787 if (WARN_ONCE(offset, in __skb_vlan_pop()
5789 offset)) { in __skb_vlan_pop()
5856 int offset = skb->data - skb_mac_header(skb); in skb_vlan_push() local
5859 if (WARN_ONCE(offset, in skb_vlan_push()
5861 offset)) { in skb_vlan_push()
6464 return (void *)ext + (ext->offset[id] * SKB_EXT_ALIGN_VALUE); in skb_ext_get_ptr()
6481 memset(new->offset, 0, sizeof(new->offset)); in __skb_ext_alloc()
6534 ext->offset[id] = newoff; in __skb_ext_set()
6580 new->offset[id] = newoff; in skb_ext_add()