Lines Matching refs:sgl

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