Lines Matching refs:sgl
539 sg_unmark_end(sgl_prev->sgt.sgl + sgl_prev->sgt.nents - 1);
540 sg_chain(sgl_prev->sgt.sgl, sgl_prev->sgt.nents + 1, sgl_new->sgt.sgl);
543 void af_alg_free_sg(struct af_alg_sgl *sgl)
547 if (sgl->sgt.sgl) {
548 if (sgl->need_unpin)
549 for (i = 0; i < sgl->sgt.nents; i++)
550 unpin_user_page(sg_page(&sgl->sgt.sgl[i]));
551 if (sgl->sgt.sgl != sgl->sgl)
552 kvfree(sgl->sgt.sgl);
553 sgl->sgt.sgl = NULL;
608 struct af_alg_tsgl *sgl;
611 sgl = list_entry(ctx->tsgl_list.prev, struct af_alg_tsgl, list);
613 sg = sgl->sg;
615 if (!sg || sgl->cur >= MAX_SGL_ENTS) {
616 sgl = sock_kmalloc(sk,
617 struct_size(sgl, sg, (MAX_SGL_ENTS + 1)),
619 if (!sgl)
622 sg_init_table(sgl->sg, MAX_SGL_ENTS + 1);
623 sgl->cur = 0;
626 sg_chain(sg, MAX_SGL_ENTS + 1, sgl->sg);
628 list_add_tail(&sgl->list, &ctx->tsgl_list);
649 const struct af_alg_tsgl *sgl;
656 list_for_each_entry(sgl, &ctx->tsgl_list, list) {
657 const struct scatterlist *sg = sgl->sg;
659 for (i = 0; i < sgl->cur; i++) {
706 struct af_alg_tsgl *sgl;
711 sgl = list_first_entry(&ctx->tsgl_list, struct af_alg_tsgl,
713 sg = sgl->sg;
715 for (i = 0; i < sgl->cur; i++) {
754 list_del(&sgl->list);
755 sock_kfree_s(sk, sgl, struct_size(sgl, sg, MAX_SGL_ENTS + 1));
781 af_alg_free_sg(&rsgl->sgl);
943 struct af_alg_tsgl *sgl;
999 sgl = list_entry(ctx->tsgl_list.prev,
1001 sg = sgl->sg + sgl->cur - 1;
1034 sgl = list_entry(ctx->tsgl_list.prev, struct af_alg_tsgl,
1036 sg = sgl->sg;
1037 if (sgl->cur)
1038 sg_unmark_end(sg + sgl->cur - 1);
1042 .sgl = sg,
1043 .nents = sgl->cur,
1044 .orig_nents = sgl->cur,
1048 MAX_SGL_ENTS - sgl->cur, 0);
1054 for (; sgl->cur < sgtable.nents; sgl->cur++)
1055 get_page(sg_page(&sg[sgl->cur]));
1064 unsigned int i = sgl->cur;
1090 sgl->cur++;
1091 } while (len && sgl->cur < MAX_SGL_ENTS);
1097 sg_mark_end(sg + sgl->cur - 1);
1210 areq->first_rsgl.sgl.sgt.sgl = areq->first_rsgl.sgl.sgl;
1260 rsgl->sgl.need_unpin =
1262 rsgl->sgl.sgt.sgl = rsgl->sgl.sgl;
1263 rsgl->sgl.sgt.nents = 0;
1264 rsgl->sgl.sgt.orig_nents = 0;
1267 sg_init_table(rsgl->sgl.sgt.sgl, ALG_MAX_PAGES);
1268 err = extract_iter_to_sg(&msg->msg_iter, seglen, &rsgl->sgl.sgt,
1275 sg_mark_end(rsgl->sgl.sgt.sgl + rsgl->sgl.sgt.nents - 1);
1279 af_alg_link_sg(&areq->last_rsgl->sgl, &rsgl->sgl);