Lines Matching refs:len
101 msg, addr, skb->len, sz, skb->head, skb->data, in skb_panic()
407 struct sk_buff *__netdev_alloc_skb(struct net_device *dev, unsigned int len, in __netdev_alloc_skb() argument
416 len += NET_SKB_PAD; in __netdev_alloc_skb()
418 if ((len > SKB_WITH_OVERHEAD(PAGE_SIZE)) || in __netdev_alloc_skb()
420 skb = __alloc_skb(len, gfp_mask, SKB_ALLOC_RX, NUMA_NO_NODE); in __netdev_alloc_skb()
426 len += SKB_DATA_ALIGN(sizeof(struct skb_shared_info)); in __netdev_alloc_skb()
427 len = SKB_DATA_ALIGN(len); in __netdev_alloc_skb()
435 data = __alloc_page_frag(nc, len, gfp_mask); in __netdev_alloc_skb()
443 skb = __build_skb(data, len); in __netdev_alloc_skb()
476 struct sk_buff *__napi_alloc_skb(struct napi_struct *napi, unsigned int len, in __napi_alloc_skb() argument
483 len += NET_SKB_PAD + NET_IP_ALIGN; in __napi_alloc_skb()
485 if ((len > SKB_WITH_OVERHEAD(PAGE_SIZE)) || in __napi_alloc_skb()
487 skb = __alloc_skb(len, gfp_mask, SKB_ALLOC_RX, NUMA_NO_NODE); in __napi_alloc_skb()
493 len += SKB_DATA_ALIGN(sizeof(struct skb_shared_info)); in __napi_alloc_skb()
494 len = SKB_DATA_ALIGN(len); in __napi_alloc_skb()
499 data = __alloc_page_frag(nc, len, gfp_mask); in __napi_alloc_skb()
503 skb = __build_skb(data, len); in __napi_alloc_skb()
527 skb->len += size; in skb_add_rx_frag()
539 skb->len += size; in skb_coalesce_rx_frag()
824 C(len); in __skb_clone()
1029 skb_put(n, skb->len); in skb_copy()
1031 if (skb_copy_bits(skb, -headerlen, n->head, headerlen + skb->len)) in skb_copy()
1071 skb_copy_from_linear_data(skb, n->data, n->len); in __pskb_copy_fclone()
1075 n->len = skb->len; in __pskb_copy_fclone()
1242 struct sk_buff *n = __alloc_skb(newheadroom + skb->len + newtailroom, in skb_copy_expand()
1254 skb_put(n, skb->len); in skb_copy_expand()
1265 skb->len + head_copy_len)) in skb_copy_expand()
1295 memset(skb->data+skb->len, 0, pad); in skb_pad()
1313 memset(skb->data + skb->len, 0, pad); in skb_pad()
1335 unsigned char *pskb_put(struct sk_buff *skb, struct sk_buff *tail, int len) in pskb_put() argument
1338 skb->data_len += len; in pskb_put()
1339 skb->len += len; in pskb_put()
1341 return skb_put(tail, len); in pskb_put()
1354 unsigned char *skb_put(struct sk_buff *skb, unsigned int len) in skb_put() argument
1358 skb->tail += len; in skb_put()
1359 skb->len += len; in skb_put()
1361 skb_over_panic(skb, len, __builtin_return_address(0)); in skb_put()
1375 unsigned char *skb_push(struct sk_buff *skb, unsigned int len) in skb_push() argument
1377 skb->data -= len; in skb_push()
1378 skb->len += len; in skb_push()
1380 skb_under_panic(skb, len, __builtin_return_address(0)); in skb_push()
1395 unsigned char *skb_pull(struct sk_buff *skb, unsigned int len) in skb_pull() argument
1397 return skb_pull_inline(skb, len); in skb_pull()
1410 void skb_trim(struct sk_buff *skb, unsigned int len) in skb_trim() argument
1412 if (skb->len > len) in skb_trim()
1413 __skb_trim(skb, len); in skb_trim()
1420 int ___pskb_trim(struct sk_buff *skb, unsigned int len) in ___pskb_trim() argument
1434 if (offset >= len) in ___pskb_trim()
1440 if (end < len) { in ___pskb_trim()
1445 skb_frag_size_set(&skb_shinfo(skb)->frags[i++], len - offset); in ___pskb_trim()
1460 int end = offset + frag->len; in ___pskb_trim()
1475 if (end < len) { in ___pskb_trim()
1480 if (end > len && in ___pskb_trim()
1481 unlikely((err = pskb_trim(frag, len - offset)))) in ___pskb_trim()
1490 if (len > skb_headlen(skb)) { in ___pskb_trim()
1491 skb->data_len -= skb->len - len; in ___pskb_trim()
1492 skb->len = len; in ___pskb_trim()
1494 skb->len = len; in ___pskb_trim()
1496 skb_set_tail_pointer(skb, len); in ___pskb_trim()
1576 if (list->len <= eat) { in __pskb_pull_tail()
1578 eat -= list->len; in __pskb_pull_tail()
1660 int skb_copy_bits(const struct sk_buff *skb, int offset, void *to, int len) in skb_copy_bits() argument
1666 if (offset > (int)skb->len - len) in skb_copy_bits()
1671 if (copy > len) in skb_copy_bits()
1672 copy = len; in skb_copy_bits()
1674 if ((len -= copy) == 0) in skb_copy_bits()
1684 WARN_ON(start > offset + len); in skb_copy_bits()
1690 if (copy > len) in skb_copy_bits()
1691 copy = len; in skb_copy_bits()
1699 if ((len -= copy) == 0) in skb_copy_bits()
1710 WARN_ON(start > offset + len); in skb_copy_bits()
1712 end = start + frag_iter->len; in skb_copy_bits()
1714 if (copy > len) in skb_copy_bits()
1715 copy = len; in skb_copy_bits()
1718 if ((len -= copy) == 0) in skb_copy_bits()
1726 if (!len) in skb_copy_bits()
1743 static struct page *linear_to_page(struct page *page, unsigned int *len, in linear_to_page() argument
1752 *len = min_t(unsigned int, *len, pfrag->size - pfrag->offset); in linear_to_page()
1755 page_address(page) + *offset, *len); in linear_to_page()
1757 pfrag->offset += *len; in linear_to_page()
1769 spd->partial[spd->nr_pages - 1].len == offset); in spd_can_coalesce()
1777 unsigned int *len, unsigned int offset, in spd_fill_page() argument
1785 page = linear_to_page(page, len, &offset, sk); in spd_fill_page()
1790 spd->partial[spd->nr_pages - 1].len += *len; in spd_fill_page()
1795 spd->partial[spd->nr_pages].len = *len; in spd_fill_page()
1804 unsigned int *len, in __splice_segment() argument
1809 if (!*len) in __splice_segment()
1824 unsigned int flen = min(*len, plen); in __splice_segment()
1831 *len -= flen; in __splice_segment()
1832 } while (*len && plen); in __splice_segment()
1842 unsigned int *offset, unsigned int *len, in __skb_splice_bits() argument
1855 offset, len, spd, in __skb_splice_bits()
1868 offset, len, spd, false, sk, pipe)) in __skb_splice_bits()
1961 int skb_store_bits(struct sk_buff *skb, int offset, const void *from, int len) in skb_store_bits() argument
1967 if (offset > (int)skb->len - len) in skb_store_bits()
1971 if (copy > len) in skb_store_bits()
1972 copy = len; in skb_store_bits()
1974 if ((len -= copy) == 0) in skb_store_bits()
1984 WARN_ON(start > offset + len); in skb_store_bits()
1990 if (copy > len) in skb_store_bits()
1991 copy = len; in skb_store_bits()
1998 if ((len -= copy) == 0) in skb_store_bits()
2009 WARN_ON(start > offset + len); in skb_store_bits()
2011 end = start + frag_iter->len; in skb_store_bits()
2013 if (copy > len) in skb_store_bits()
2014 copy = len; in skb_store_bits()
2018 if ((len -= copy) == 0) in skb_store_bits()
2025 if (!len) in skb_store_bits()
2034 __wsum __skb_checksum(const struct sk_buff *skb, int offset, int len, in __skb_checksum() argument
2044 if (copy > len) in __skb_checksum()
2045 copy = len; in __skb_checksum()
2047 if ((len -= copy) == 0) in __skb_checksum()
2057 WARN_ON(start > offset + len); in __skb_checksum()
2064 if (copy > len) in __skb_checksum()
2065 copy = len; in __skb_checksum()
2071 if (!(len -= copy)) in __skb_checksum()
2082 WARN_ON(start > offset + len); in __skb_checksum()
2084 end = start + frag_iter->len; in __skb_checksum()
2087 if (copy > len) in __skb_checksum()
2088 copy = len; in __skb_checksum()
2092 if ((len -= copy) == 0) in __skb_checksum()
2099 BUG_ON(len); in __skb_checksum()
2106 int len, __wsum csum) in skb_checksum() argument
2113 return __skb_checksum(skb, offset, len, csum, &ops); in skb_checksum()
2120 u8 *to, int len, __wsum csum) in skb_copy_and_csum_bits() argument
2129 if (copy > len) in skb_copy_and_csum_bits()
2130 copy = len; in skb_copy_and_csum_bits()
2133 if ((len -= copy) == 0) in skb_copy_and_csum_bits()
2143 WARN_ON(start > offset + len); in skb_copy_and_csum_bits()
2151 if (copy > len) in skb_copy_and_csum_bits()
2152 copy = len; in skb_copy_and_csum_bits()
2160 if (!(len -= copy)) in skb_copy_and_csum_bits()
2173 WARN_ON(start > offset + len); in skb_copy_and_csum_bits()
2175 end = start + frag_iter->len; in skb_copy_and_csum_bits()
2177 if (copy > len) in skb_copy_and_csum_bits()
2178 copy = len; in skb_copy_and_csum_bits()
2183 if ((len -= copy) == 0) in skb_copy_and_csum_bits()
2191 BUG_ON(len); in skb_copy_and_csum_bits()
2214 hlen = from->len; in skb_zerocopy_headlen()
2239 skb_zerocopy(struct sk_buff *to, struct sk_buff *from, int len, int hlen) in skb_zerocopy() argument
2250 if (len <= skb_tailroom(to)) in skb_zerocopy()
2251 return skb_copy_bits(from, 0, skb_put(to, len), len); in skb_zerocopy()
2257 len -= hlen; in skb_zerocopy()
2259 plen = min_t(int, skb_headlen(from), len); in skb_zerocopy()
2266 len -= plen; in skb_zerocopy()
2270 to->truesize += len + plen; in skb_zerocopy()
2271 to->len += len + plen; in skb_zerocopy()
2272 to->data_len += len + plen; in skb_zerocopy()
2280 if (!len) in skb_zerocopy()
2283 skb_shinfo(to)->frags[j].size = min_t(int, skb_shinfo(to)->frags[j].size, len); in skb_zerocopy()
2284 len -= skb_shinfo(to)->frags[j].size; in skb_zerocopy()
2309 if (csstart != skb->len) in skb_copy_and_csum_dev()
2311 skb->len - csstart, 0); in skb_copy_and_csum_dev()
2484 const u32 len, const int pos) in skb_split_inside_header() argument
2488 skb_copy_from_linear_data_offset(skb, len, skb_put(skb1, pos - len), in skb_split_inside_header()
2489 pos - len); in skb_split_inside_header()
2497 skb1->len += skb1->data_len; in skb_split_inside_header()
2499 skb->len = len; in skb_split_inside_header()
2500 skb_set_tail_pointer(skb, len); in skb_split_inside_header()
2505 const u32 len, int pos) in skb_split_no_header() argument
2511 skb1->len = skb1->data_len = skb->len - len; in skb_split_no_header()
2512 skb->len = len; in skb_split_no_header()
2513 skb->data_len = len - pos; in skb_split_no_header()
2518 if (pos + size > len) { in skb_split_no_header()
2521 if (pos < len) { in skb_split_no_header()
2531 skb_shinfo(skb1)->frags[0].page_offset += len - pos; in skb_split_no_header()
2532 skb_frag_size_sub(&skb_shinfo(skb1)->frags[0], len - pos); in skb_split_no_header()
2533 skb_frag_size_set(&skb_shinfo(skb)->frags[i], len - pos); in skb_split_no_header()
2550 void skb_split(struct sk_buff *skb, struct sk_buff *skb1, const u32 len) in skb_split() argument
2555 if (len < pos) /* Split line is inside header. */ in skb_split()
2556 skb_split_inside_header(skb, skb1, len, pos); in skb_split()
2558 skb_split_no_header(skb, skb1, len, pos); in skb_split()
2594 BUG_ON(shiftlen > skb->len); in skb_shift()
2633 if ((shiftlen == skb->len) && in skb_shift()
2695 skb->len -= shiftlen; in skb_shift()
2698 tgt->len += shiftlen; in skb_shift()
2887 int len, int odd, struct sk_buff *skb), in skb_append_datato_frags() argument
2921 skb->len += copy; in skb_append_datato_frags()
2961 static unsigned char *skb_push_rcsum(struct sk_buff *skb, unsigned len) in skb_push_rcsum() argument
2963 skb_push(skb, len); in skb_push_rcsum()
2964 skb_postpush_rcsum(skb, skb->data, len); in skb_push_rcsum()
2979 unsigned char *skb_pull_rcsum(struct sk_buff *skb, unsigned int len) in skb_pull_rcsum() argument
2983 BUG_ON(len > skb->len); in skb_pull_rcsum()
2984 __skb_pull(skb, len); in skb_pull_rcsum()
2985 skb_postpull_rcsum(skb, data, len); in skb_pull_rcsum()
3012 unsigned int len; in skb_segment() local
3039 len = head_skb->len - offset; in skb_segment()
3040 if (len > mss) in skb_segment()
3041 len = mss; in skb_segment()
3046 if (hsize > len || !sg) in skb_segment()
3047 hsize = len; in skb_segment()
3050 (skb_headlen(list_skb) == len || sg)) { in skb_segment()
3051 BUG_ON(skb_headlen(list_skb) > len); in skb_segment()
3059 while (pos < offset + len) { in skb_segment()
3063 if (pos + size > offset + len) in skb_segment()
3077 if (unlikely(pskb_trim(nskb, len))) { in skb_segment()
3118 if (nskb->len == len + doffset) in skb_segment()
3124 skb_put(nskb, len), in skb_segment()
3125 len, 0); in skb_segment()
3139 while (pos < offset + len) { in skb_segment()
3175 if (pos + size <= offset + len) { in skb_segment()
3180 skb_frag_size_sub(nskb_frag, pos + size - (offset + len)); in skb_segment()
3188 nskb->data_len = len - hsize; in skb_segment()
3189 nskb->len += nskb->data_len; in skb_segment()
3195 nskb->len - doffset, 0); in skb_segment()
3200 } while ((offset += len) < head_skb->len); in skb_segment()
3230 unsigned int len = skb_gro_len(skb); in skb_gro_receive() local
3234 if (unlikely(p->len + len >= 65536)) in skb_gro_receive()
3267 skb->len -= skb->data_len; in skb_gro_receive()
3308 skb->len -= eat; in skb_gro_receive()
3324 p->data_len += len; in skb_gro_receive()
3326 p->len += len; in skb_gro_receive()
3328 lp->data_len += len; in skb_gro_receive()
3330 lp->len += len; in skb_gro_receive()
3361 __skb_to_sgvec(struct sk_buff *skb, struct scatterlist *sg, int offset, int len) in __skb_to_sgvec() argument
3369 if (copy > len) in __skb_to_sgvec()
3370 copy = len; in __skb_to_sgvec()
3373 if ((len -= copy) == 0) in __skb_to_sgvec()
3381 WARN_ON(start > offset + len); in __skb_to_sgvec()
3387 if (copy > len) in __skb_to_sgvec()
3388 copy = len; in __skb_to_sgvec()
3392 if (!(len -= copy)) in __skb_to_sgvec()
3402 WARN_ON(start > offset + len); in __skb_to_sgvec()
3404 end = start + frag_iter->len; in __skb_to_sgvec()
3406 if (copy > len) in __skb_to_sgvec()
3407 copy = len; in __skb_to_sgvec()
3410 if ((len -= copy) == 0) in __skb_to_sgvec()
3416 BUG_ON(len); in __skb_to_sgvec()
3440 int offset, int len) in skb_to_sgvec_nomark() argument
3442 return __skb_to_sgvec(skb, sg, offset, len); in skb_to_sgvec_nomark()
3446 int skb_to_sgvec(struct sk_buff *skb, struct scatterlist *sg, int offset, int len) in skb_to_sgvec() argument
3448 int nsg = __skb_to_sgvec(skb, sg, offset, len); in skb_to_sgvec()
3805 static int skb_maybe_pull_tail(struct sk_buff *skb, unsigned int len, in skb_maybe_pull_tail() argument
3808 if (skb_headlen(skb) >= len) in skb_maybe_pull_tail()
3814 if (max > skb->len) in skb_maybe_pull_tail()
3815 max = skb->len; in skb_maybe_pull_tail()
3820 if (skb_headlen(skb) < len) in skb_maybe_pull_tail()
3894 skb->len - off, in skb_checksum_setup_ipv4()
3915 unsigned int len; in skb_checksum_setup_ipv6() local
3931 len = sizeof(struct ipv6hdr) + ntohs(ipv6_hdr(skb)->payload_len); in skb_checksum_setup_ipv6()
3932 while (off <= len && !done) { in skb_checksum_setup_ipv6()
4003 skb->len - off, nexthdr, 0); in skb_checksum_setup_ipv6()
4054 unsigned int len = skb_transport_offset(skb) + transport_len; in skb_checksum_maybe_trim() local
4057 if (skb->len < len) in skb_checksum_maybe_trim()
4059 else if (skb->len == len) in skb_checksum_maybe_trim()
4066 ret = pskb_trim_rcsum(skb_chk, len); in skb_checksum_maybe_trim()
4151 int i, delta, len = from->len; in skb_try_coalesce() local
4158 if (len <= skb_tailroom(to)) { in skb_try_coalesce()
4159 if (len) in skb_try_coalesce()
4160 BUG_ON(skb_copy_bits(from, 0, skb_put(to, len), len)); in skb_try_coalesce()
4195 WARN_ON_ONCE(delta < len); in skb_try_coalesce()
4212 to->len += len; in skb_try_coalesce()
4213 to->data_len += len; in skb_try_coalesce()
4394 skb->len < VLAN_ETH_HLEN)) in skb_vlan_pop()
4404 skb->len < VLAN_ETH_HLEN)) in skb_vlan_pop()