• Home
  • Raw
  • Download

Lines Matching refs:sgl

404 int af_alg_make_sg(struct af_alg_sgl *sgl, struct iov_iter *iter, int len)  in af_alg_make_sg()  argument
410 n = iov_iter_get_pages(iter, sgl->pages, len, ALG_MAX_PAGES, &off); in af_alg_make_sg()
418 sg_init_table(sgl->sg, npages + 1); in af_alg_make_sg()
423 sg_set_page(sgl->sg + i, sgl->pages[i], plen, off); in af_alg_make_sg()
428 sg_mark_end(sgl->sg + npages - 1); in af_alg_make_sg()
429 sgl->npages = npages; in af_alg_make_sg()
442 void af_alg_free_sg(struct af_alg_sgl *sgl) in af_alg_free_sg() argument
446 for (i = 0; i < sgl->npages; i++) in af_alg_free_sg()
447 put_page(sgl->pages[i]); in af_alg_free_sg()
501 struct af_alg_tsgl *sgl; in af_alg_alloc_tsgl() local
504 sgl = list_entry(ctx->tsgl_list.prev, struct af_alg_tsgl, list); in af_alg_alloc_tsgl()
506 sg = sgl->sg; in af_alg_alloc_tsgl()
508 if (!sg || sgl->cur >= MAX_SGL_ENTS) { in af_alg_alloc_tsgl()
509 sgl = sock_kmalloc(sk, in af_alg_alloc_tsgl()
510 struct_size(sgl, sg, (MAX_SGL_ENTS + 1)), in af_alg_alloc_tsgl()
512 if (!sgl) in af_alg_alloc_tsgl()
515 sg_init_table(sgl->sg, MAX_SGL_ENTS + 1); in af_alg_alloc_tsgl()
516 sgl->cur = 0; in af_alg_alloc_tsgl()
519 sg_chain(sg, MAX_SGL_ENTS + 1, sgl->sg); in af_alg_alloc_tsgl()
521 list_add_tail(&sgl->list, &ctx->tsgl_list); in af_alg_alloc_tsgl()
542 const struct af_alg_tsgl *sgl; in af_alg_count_tsgl() local
549 list_for_each_entry(sgl, &ctx->tsgl_list, list) { in af_alg_count_tsgl()
550 const struct scatterlist *sg = sgl->sg; in af_alg_count_tsgl()
552 for (i = 0; i < sgl->cur; i++) { in af_alg_count_tsgl()
599 struct af_alg_tsgl *sgl; in af_alg_pull_tsgl() local
604 sgl = list_first_entry(&ctx->tsgl_list, struct af_alg_tsgl, in af_alg_pull_tsgl()
606 sg = sgl->sg; in af_alg_pull_tsgl()
608 for (i = 0; i < sgl->cur; i++) { in af_alg_pull_tsgl()
647 list_del(&sgl->list); in af_alg_pull_tsgl()
648 sock_kfree_s(sk, sgl, struct_size(sgl, sg, MAX_SGL_ENTS + 1)); in af_alg_pull_tsgl()
674 af_alg_free_sg(&rsgl->sgl); in af_alg_free_areq_sgls()
836 struct af_alg_tsgl *sgl; in af_alg_sendmsg() local
892 sgl = list_entry(ctx->tsgl_list.prev, in af_alg_sendmsg()
894 sg = sgl->sg + sgl->cur - 1; in af_alg_sendmsg()
927 sgl = list_entry(ctx->tsgl_list.prev, struct af_alg_tsgl, in af_alg_sendmsg()
929 sg = sgl->sg; in af_alg_sendmsg()
930 if (sgl->cur) in af_alg_sendmsg()
931 sg_unmark_end(sg + sgl->cur - 1); in af_alg_sendmsg()
934 unsigned int i = sgl->cur; in af_alg_sendmsg()
957 sgl->cur++; in af_alg_sendmsg()
958 } while (len && sgl->cur < MAX_SGL_ENTS); in af_alg_sendmsg()
961 sg_mark_end(sg + sgl->cur - 1); in af_alg_sendmsg()
994 struct af_alg_tsgl *sgl; in af_alg_sendpage() local
1018 sgl = list_entry(ctx->tsgl_list.prev, struct af_alg_tsgl, list); in af_alg_sendpage()
1020 if (sgl->cur) in af_alg_sendpage()
1021 sg_unmark_end(sgl->sg + sgl->cur - 1); in af_alg_sendpage()
1023 sg_mark_end(sgl->sg + sgl->cur); in af_alg_sendpage()
1026 sg_set_page(sgl->sg + sgl->cur, page, size, offset); in af_alg_sendpage()
1027 sgl->cur++; in af_alg_sendpage()
1188 rsgl->sgl.npages = 0; in af_alg_get_rsgl()
1192 err = af_alg_make_sg(&rsgl->sgl, &msg->msg_iter, seglen); in af_alg_get_rsgl()
1200 af_alg_link_sg(&areq->last_rsgl->sgl, &rsgl->sgl); in af_alg_get_rsgl()