Lines Matching refs:fr_desc
473 struct fast_reg_descriptor *fr_desc, *tmp; in isert_conn_free_fastreg_pool() local
481 list_for_each_entry_safe(fr_desc, tmp, in isert_conn_free_fastreg_pool()
483 list_del(&fr_desc->list); in isert_conn_free_fastreg_pool()
484 ib_free_fast_reg_page_list(fr_desc->data_frpl); in isert_conn_free_fastreg_pool()
485 ib_dereg_mr(fr_desc->data_mr); in isert_conn_free_fastreg_pool()
486 if (fr_desc->pi_ctx) { in isert_conn_free_fastreg_pool()
487 ib_free_fast_reg_page_list(fr_desc->pi_ctx->prot_frpl); in isert_conn_free_fastreg_pool()
488 ib_dereg_mr(fr_desc->pi_ctx->prot_mr); in isert_conn_free_fastreg_pool()
489 ib_destroy_mr(fr_desc->pi_ctx->sig_mr); in isert_conn_free_fastreg_pool()
490 kfree(fr_desc->pi_ctx); in isert_conn_free_fastreg_pool()
492 kfree(fr_desc); in isert_conn_free_fastreg_pool()
563 struct fast_reg_descriptor *fr_desc) in isert_create_fr_desc() argument
567 fr_desc->data_frpl = ib_alloc_fast_reg_page_list(ib_device, in isert_create_fr_desc()
569 if (IS_ERR(fr_desc->data_frpl)) { in isert_create_fr_desc()
571 PTR_ERR(fr_desc->data_frpl)); in isert_create_fr_desc()
572 return PTR_ERR(fr_desc->data_frpl); in isert_create_fr_desc()
575 fr_desc->data_mr = ib_alloc_fast_reg_mr(pd, ISCSI_ISER_SG_TABLESIZE); in isert_create_fr_desc()
576 if (IS_ERR(fr_desc->data_mr)) { in isert_create_fr_desc()
578 PTR_ERR(fr_desc->data_mr)); in isert_create_fr_desc()
579 ret = PTR_ERR(fr_desc->data_mr); in isert_create_fr_desc()
582 fr_desc->ind |= ISERT_DATA_KEY_VALID; in isert_create_fr_desc()
584 isert_dbg("Created fr_desc %p\n", fr_desc); in isert_create_fr_desc()
589 ib_free_fast_reg_page_list(fr_desc->data_frpl); in isert_create_fr_desc()
597 struct fast_reg_descriptor *fr_desc; in isert_conn_create_fastreg_pool() local
611 fr_desc = kzalloc(sizeof(*fr_desc), GFP_KERNEL); in isert_conn_create_fastreg_pool()
612 if (!fr_desc) { in isert_conn_create_fastreg_pool()
619 device->pd, fr_desc); in isert_conn_create_fastreg_pool()
623 kfree(fr_desc); in isert_conn_create_fastreg_pool()
627 list_add_tail(&fr_desc->list, &isert_conn->fr_pool); in isert_conn_create_fastreg_pool()
1726 if (wr->fr_desc) { in isert_unreg_rdma()
1727 isert_dbg("Cmd %p free fr_desc %p\n", isert_cmd, wr->fr_desc); in isert_unreg_rdma()
1728 if (wr->fr_desc->ind & ISERT_PROTECTED) { in isert_unreg_rdma()
1730 wr->fr_desc->ind &= ~ISERT_PROTECTED; in isert_unreg_rdma()
1733 list_add_tail(&wr->fr_desc->list, &isert_conn->fr_pool); in isert_unreg_rdma()
1735 wr->fr_desc = NULL; in isert_unreg_rdma()
1906 if (wr->fr_desc && wr->fr_desc->ind & ISERT_PROTECTED) { in isert_completion_rdma_write()
1908 wr->fr_desc->pi_ctx->sig_mr); in isert_completion_rdma_write()
1909 wr->fr_desc->ind &= ~ISERT_PROTECTED; in isert_completion_rdma_write()
1932 if (wr->fr_desc && wr->fr_desc->ind & ISERT_PROTECTED) { in isert_completion_rdma_read()
1934 wr->fr_desc->pi_ctx->sig_mr); in isert_completion_rdma_read()
1935 wr->fr_desc->ind &= ~ISERT_PROTECTED; in isert_completion_rdma_read()
2574 struct fast_reg_descriptor *fr_desc, in isert_fast_reg_mr() argument
2599 mr = fr_desc->data_mr; in isert_fast_reg_mr()
2600 frpl = fr_desc->data_frpl; in isert_fast_reg_mr()
2603 mr = fr_desc->pi_ctx->prot_mr; in isert_fast_reg_mr()
2604 frpl = fr_desc->pi_ctx->prot_frpl; in isert_fast_reg_mr()
2610 fr_desc, mem->nents, mem->offset); in isert_fast_reg_mr()
2615 if (!(fr_desc->ind & ind)) { in isert_fast_reg_mr()
2642 fr_desc->ind &= ~ind; in isert_fast_reg_mr()
2714 struct fast_reg_descriptor *fr_desc) in isert_reg_sig_mr() argument
2718 struct pi_context *pi_ctx = fr_desc->pi_ctx; in isert_reg_sig_mr()
2729 if (!(fr_desc->ind & ISERT_SIG_KEY_VALID)) { in isert_reg_sig_mr()
2755 fr_desc->ind &= ~ISERT_SIG_KEY_VALID; in isert_reg_sig_mr()
2784 if (!wr->fr_desc->pi_ctx) { in isert_handle_prot_cmd()
2785 ret = isert_create_pi_ctx(wr->fr_desc, in isert_handle_prot_cmd()
2808 ret = isert_fast_reg_mr(isert_conn, wr->fr_desc, &wr->prot, in isert_handle_prot_cmd()
2817 ret = isert_reg_sig_mr(isert_conn, se_cmd, wr, wr->fr_desc); in isert_handle_prot_cmd()
2823 wr->fr_desc->ind |= ISERT_PROTECTED; in isert_handle_prot_cmd()
2841 struct fast_reg_descriptor *fr_desc = NULL; in isert_reg_rdma() local
2859 fr_desc = list_first_entry(&isert_conn->fr_pool, in isert_reg_rdma()
2861 list_del(&fr_desc->list); in isert_reg_rdma()
2863 wr->fr_desc = fr_desc; in isert_reg_rdma()
2866 ret = isert_fast_reg_mr(isert_conn, fr_desc, &wr->data, in isert_reg_rdma()
2908 if (fr_desc) { in isert_reg_rdma()
2910 list_add_tail(&fr_desc->list, &isert_conn->fr_pool); in isert_reg_rdma()