Lines Matching refs:sg

25 int sg_nents(struct scatterlist *sg)  in sg_nents()  argument
28 for (nents = 0; sg; sg = sg_next(sg)) in sg_nents()
48 int sg_nents_for_len(struct scatterlist *sg, u64 len) in sg_nents_for_len() argument
56 for (nents = 0, total = 0; sg; sg = sg_next(sg)) { in sg_nents_for_len()
58 total += sg->length; in sg_nents_for_len()
83 struct scatterlist *sg, *ret = NULL; in sg_last() local
86 for_each_sg(sgl, sg, nents, i) in sg_last()
87 ret = sg; in sg_last()
118 void sg_init_one(struct scatterlist *sg, const void *buf, unsigned int buflen) in sg_init_one() argument
120 sg_init_table(sg, 1); in sg_init_one()
121 sg_set_buf(sg, buf, buflen); in sg_init_one()
149 static void sg_kfree(struct scatterlist *sg, unsigned int nents) in sg_kfree() argument
152 kmemleak_free(sg); in sg_kfree()
153 free_page((unsigned long) sg); in sg_kfree()
155 kfree(sg); in sg_kfree()
268 struct scatterlist *sg, *prv; in __sg_alloc_table() local
296 sg = first_chunk; in __sg_alloc_table()
299 sg = alloc_fn(alloc_size, gfp_mask); in __sg_alloc_table()
301 if (unlikely(!sg)) { in __sg_alloc_table()
314 sg_init_table(sg, alloc_size); in __sg_alloc_table()
322 sg_chain(prv, prv_max_ents, sg); in __sg_alloc_table()
324 table->sgl = sg; in __sg_alloc_table()
330 sg_mark_end(&sg[sg_size - 1]); in __sg_alloc_table()
332 prv = sg; in __sg_alloc_table()
593 struct scatterlist *sgl, *sg; in sgl_alloc_order() local
615 sg = sgl; in sgl_alloc_order()
624 sg_set_page(sg, page, elem_len, 0); in sgl_alloc_order()
626 sg = sg_next(sg); in sgl_alloc_order()
665 struct scatterlist *sg; in sgl_free_n_order() local
669 for_each_sg(sgl, sg, nents, i) { in sgl_free_n_order()
670 if (!sg) in sgl_free_n_order()
672 page = sg_page(sg); in sgl_free_n_order()
710 piter->sg = sglist; in __sg_page_iter_start()
715 static int sg_page_count(struct scatterlist *sg) in sg_page_count() argument
717 return PAGE_ALIGN(sg->offset + sg->length) >> PAGE_SHIFT; in sg_page_count()
722 if (!piter->__nents || !piter->sg) in __sg_page_iter_next()
728 while (piter->sg_pgoffset >= sg_page_count(piter->sg)) { in __sg_page_iter_next()
729 piter->sg_pgoffset -= sg_page_count(piter->sg); in __sg_page_iter_next()
730 piter->sg = sg_next(piter->sg); in __sg_page_iter_next()
731 if (!--piter->__nents || !piter->sg) in __sg_page_iter_next()
739 static int sg_dma_page_count(struct scatterlist *sg) in sg_dma_page_count() argument
741 return PAGE_ALIGN(sg->offset + sg_dma_len(sg)) >> PAGE_SHIFT; in sg_dma_page_count()
748 if (!piter->__nents || !piter->sg) in __sg_page_iter_dma_next()
754 while (piter->sg_pgoffset >= sg_dma_page_count(piter->sg)) { in __sg_page_iter_dma_next()
755 piter->sg_pgoffset -= sg_dma_page_count(piter->sg); in __sg_page_iter_dma_next()
756 piter->sg = sg_next(piter->sg); in __sg_page_iter_dma_next()
757 if (!--piter->__nents || !piter->sg) in __sg_page_iter_dma_next()
792 struct scatterlist *sg; in sg_miter_get_next_page() local
797 sg = miter->piter.sg; in sg_miter_get_next_page()
799 miter->__offset = miter->piter.sg_pgoffset ? 0 : sg->offset; in sg_miter_get_next_page()
802 miter->__remaining = sg->offset + sg->length - in sg_miter_get_next_page()
1095 struct scatterlist *sg = sgtable->sgl + sgtable->nents; in extract_user_to_sg() local
1123 sg_set_page(sg, page, seg, off); in extract_user_to_sg()
1125 sg++; in extract_user_to_sg()
1150 struct scatterlist *sg = sgtable->sgl + sgtable->nents; in extract_bvec_to_sg() local
1167 sg_set_page(sg, bv[i].bv_page, len, off); in extract_bvec_to_sg()
1169 sg++; in extract_bvec_to_sg()
1196 struct scatterlist *sg = sgtable->sgl + sgtable->nents; in extract_kvec_to_sg() local
1226 sg_set_page(sg, page, len, off); in extract_kvec_to_sg()
1228 sg++; in extract_kvec_to_sg()
1257 struct scatterlist *sg = sgtable->sgl + sgtable->nents; in extract_folioq_to_sg() local
1278 sg_set_page(sg, folio_page(folio, 0), part, offset); in extract_folioq_to_sg()
1280 sg++; in extract_folioq_to_sg()
1317 struct scatterlist *sg = sgtable->sgl + sgtable->nents; in extract_xarray_to_sg() local
1339 sg_set_page(sg, folio_page(folio, 0), len, offset); in extract_xarray_to_sg()
1341 sg++; in extract_xarray_to_sg()