Lines Matching refs:sgl
540 sg_unmark_end(sgl_prev->sgt.sgl + sgl_prev->sgt.nents - 1); in af_alg_link_sg()
541 sg_chain(sgl_prev->sgt.sgl, sgl_prev->sgt.nents + 1, sgl_new->sgt.sgl); in af_alg_link_sg()
544 void af_alg_free_sg(struct af_alg_sgl *sgl) in af_alg_free_sg() argument
548 if (sgl->sgt.sgl) { in af_alg_free_sg()
549 if (sgl->need_unpin) in af_alg_free_sg()
550 for (i = 0; i < sgl->sgt.nents; i++) in af_alg_free_sg()
551 unpin_user_page(sg_page(&sgl->sgt.sgl[i])); in af_alg_free_sg()
552 if (sgl->sgt.sgl != sgl->sgl) in af_alg_free_sg()
553 kvfree(sgl->sgt.sgl); in af_alg_free_sg()
554 sgl->sgt.sgl = NULL; in af_alg_free_sg()
609 struct af_alg_tsgl *sgl; in af_alg_alloc_tsgl() local
612 sgl = list_entry(ctx->tsgl_list.prev, struct af_alg_tsgl, list); in af_alg_alloc_tsgl()
614 sg = sgl->sg; in af_alg_alloc_tsgl()
616 if (!sg || sgl->cur >= MAX_SGL_ENTS) { in af_alg_alloc_tsgl()
617 sgl = sock_kmalloc(sk, in af_alg_alloc_tsgl()
618 struct_size(sgl, sg, (MAX_SGL_ENTS + 1)), in af_alg_alloc_tsgl()
620 if (!sgl) in af_alg_alloc_tsgl()
623 sg_init_table(sgl->sg, MAX_SGL_ENTS + 1); in af_alg_alloc_tsgl()
624 sgl->cur = 0; in af_alg_alloc_tsgl()
627 sg_chain(sg, MAX_SGL_ENTS + 1, sgl->sg); in af_alg_alloc_tsgl()
629 list_add_tail(&sgl->list, &ctx->tsgl_list); in af_alg_alloc_tsgl()
650 const struct af_alg_tsgl *sgl; in af_alg_count_tsgl() local
657 list_for_each_entry(sgl, &ctx->tsgl_list, list) { in af_alg_count_tsgl()
658 const struct scatterlist *sg = sgl->sg; in af_alg_count_tsgl()
660 for (i = 0; i < sgl->cur; i++) { in af_alg_count_tsgl()
707 struct af_alg_tsgl *sgl; in af_alg_pull_tsgl() local
712 sgl = list_first_entry(&ctx->tsgl_list, struct af_alg_tsgl, in af_alg_pull_tsgl()
714 sg = sgl->sg; in af_alg_pull_tsgl()
716 for (i = 0; i < sgl->cur; i++) { in af_alg_pull_tsgl()
755 list_del(&sgl->list); in af_alg_pull_tsgl()
756 sock_kfree_s(sk, sgl, struct_size(sgl, sg, MAX_SGL_ENTS + 1)); in af_alg_pull_tsgl()
782 af_alg_free_sg(&rsgl->sgl); in af_alg_free_areq_sgls()
944 struct af_alg_tsgl *sgl; in af_alg_sendmsg() local
1000 sgl = list_entry(ctx->tsgl_list.prev, in af_alg_sendmsg()
1002 sg = sgl->sg + sgl->cur - 1; in af_alg_sendmsg()
1035 sgl = list_entry(ctx->tsgl_list.prev, struct af_alg_tsgl, in af_alg_sendmsg()
1037 sg = sgl->sg; in af_alg_sendmsg()
1038 if (sgl->cur) in af_alg_sendmsg()
1039 sg_unmark_end(sg + sgl->cur - 1); in af_alg_sendmsg()
1043 .sgl = sg, in af_alg_sendmsg()
1044 .nents = sgl->cur, in af_alg_sendmsg()
1045 .orig_nents = sgl->cur, in af_alg_sendmsg()
1049 MAX_SGL_ENTS - sgl->cur, 0); in af_alg_sendmsg()
1055 for (; sgl->cur < sgtable.nents; sgl->cur++) in af_alg_sendmsg()
1056 get_page(sg_page(&sg[sgl->cur])); in af_alg_sendmsg()
1065 unsigned int i = sgl->cur; in af_alg_sendmsg()
1091 sgl->cur++; in af_alg_sendmsg()
1092 } while (len && sgl->cur < MAX_SGL_ENTS); in af_alg_sendmsg()
1098 sg_mark_end(sg + sgl->cur - 1); in af_alg_sendmsg()
1211 areq->first_rsgl.sgl.sgt.sgl = areq->first_rsgl.sgl.sgl; in af_alg_alloc_areq()
1261 rsgl->sgl.need_unpin = in af_alg_get_rsgl()
1263 rsgl->sgl.sgt.sgl = rsgl->sgl.sgl; in af_alg_get_rsgl()
1264 rsgl->sgl.sgt.nents = 0; in af_alg_get_rsgl()
1265 rsgl->sgl.sgt.orig_nents = 0; in af_alg_get_rsgl()
1268 sg_init_table(rsgl->sgl.sgt.sgl, ALG_MAX_PAGES); in af_alg_get_rsgl()
1269 err = extract_iter_to_sg(&msg->msg_iter, seglen, &rsgl->sgl.sgt, in af_alg_get_rsgl()
1276 sg_mark_end(rsgl->sgl.sgt.sgl + rsgl->sgl.sgt.nents - 1); in af_alg_get_rsgl()
1280 af_alg_link_sg(&areq->last_rsgl->sgl, &rsgl->sgl); in af_alg_get_rsgl()