Lines Matching refs:frag
1768 skb_frag_t *frag; in skb_advance_to_frag() local
1777 frag = skb_shinfo(skb)->frags; in skb_advance_to_frag()
1779 if (skb_frag_size(frag) > offset_skb) { in skb_advance_to_frag()
1781 return frag; in skb_advance_to_frag()
1783 offset_skb -= skb_frag_size(frag); in skb_advance_to_frag()
1784 ++frag; in skb_advance_to_frag()
1787 return frag; in skb_advance_to_frag()
1790 static bool can_map_frag(const skb_frag_t *frag) in can_map_frag() argument
1794 if (skb_frag_size(frag) != PAGE_SIZE || skb_frag_off(frag)) in can_map_frag()
1797 page = skb_frag_page(frag); in can_map_frag()
1805 static int find_next_mappable_frag(const skb_frag_t *frag, in find_next_mappable_frag() argument
1810 if (likely(can_map_frag(frag))) in find_next_mappable_frag()
1813 while (offset < remaining_in_skb && !can_map_frag(frag)) { in find_next_mappable_frag()
1814 offset += skb_frag_size(frag); in find_next_mappable_frag()
1815 ++frag; in find_next_mappable_frag()
1826 skb_frag_t *frag; in tcp_zerocopy_set_hint_for_skb() local
1832 frag = skb_advance_to_frag(skb, offset, &frag_offset); in tcp_zerocopy_set_hint_for_skb()
1833 if (!frag) in tcp_zerocopy_set_hint_for_skb()
1840 if (frag == &info->frags[info->nr_frags - 1]) in tcp_zerocopy_set_hint_for_skb()
1844 partial_frag_remainder = skb_frag_size(frag) - frag_offset; in tcp_zerocopy_set_hint_for_skb()
1846 ++frag; in tcp_zerocopy_set_hint_for_skb()
1853 mappable_offset = find_next_mappable_frag(frag, zc->recv_skip_hint); in tcp_zerocopy_set_hint_for_skb()