On 7/28/2013 11:15 AM, Or Gerlitz wrote:
On 26/07/2013 20:15, Vu Pham wrote:
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;
+}



Nice catch!

I see that Roland hasn't yet picked this series so I will re-submit it with fixes to the issues you have found here.

Or.


Nice catch indeed, thanks Vu.

-Sagi
--
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