Hello Or/Sagi,

Just a minor
 /**
+ * iser_create_frwr_pool - Creates pool of fast_reg descriptors
+ * for fast registration work requests.
+ * returns 0 on success, or errno code on failure
+ */
+int iser_create_frwr_pool(struct iser_conn *ib_conn, unsigned cmds_max)
+{
+       struct iser_device      *device = ib_conn->device;
+       struct fast_reg_descriptor      *desc;
+       int i, ret;
+
+       INIT_LIST_HEAD(&ib_conn->fastreg.frwr.pool);
+       ib_conn->fastreg.frwr.pool_size = 0;
+       for (i = 0; i < cmds_max; i++) {
+               desc = kmalloc(sizeof(*desc), GFP_KERNEL);
+               if (!desc) {
+                       iser_err("Failed to allocate a new fast_reg 
descriptor\n");
+                       ret = -ENOMEM;
+                       goto err;
+               }
+
+               desc->data_frpl = ib_alloc_fast_reg_page_list(device->ib_device,
+                                                        
ISCSI_ISER_SG_TABLESIZE + 1);
+               if (IS_ERR(desc->data_frpl)) {
ret = PTR_ERR(desc->data_frpl);
+                       iser_err("Failed to allocate ib_fast_reg_page_list 
err=%ld\n",
+                                PTR_ERR(desc->data_frpl));
using ret
+                       goto err;
+               }
+
+               desc->data_mr = ib_alloc_fast_reg_mr(device->pd,
+                                                    ISCSI_ISER_SG_TABLESIZE + 
1);
+               if (IS_ERR(desc->data_mr)) {
ret = PTR_ERR(desc->data_mr);
+                       iser_err("Failed to allocate ib_fast_reg_mr err=%ld\n",
+                                PTR_ERR(desc->data_mr));
using ret
+                       ib_free_fast_reg_page_list(desc->data_frpl);
+                       goto err;
+               }
+               desc->valid = true;
+               list_add_tail(&desc->list, &ib_conn->fastreg.frwr.pool);
+               ib_conn->fastreg.frwr.pool_size++;
+       }
+
+       return 0;
+err:
+       iser_free_frwr_pool(ib_conn);
+       return ret;
+}

-vu
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to