IB/iser: Remove dead code in fmr_pool alloc/free
authorSagi Grimberg <sagig@mellanox.com>
Thu, 6 Aug 2015 15:32:55 +0000 (18:32 +0300)
committerDoug Ledford <dledford@redhat.com>
Sun, 30 Aug 2015 22:12:29 +0000 (18:12 -0400)
In the past the we always tried to allocate an fmr_pool
and if it failed on ENOSYS (not supported) then we continued
with dma mr. This is not the case anymore and if we tried to
allocate an fmr_pool then it is supported and we expect to succeed.

Also, the check if fmr_pool is allocated when free is called is
redundant as well as we are guaranteed it exists.

Signed-off-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/ulp/iser/iser_verbs.c

index e4f8967..adec4d7 100644 (file)
@@ -244,22 +244,18 @@ int iser_create_fmr_pool(struct ib_conn *ib_conn, unsigned cmds_max)
                                    IB_ACCESS_REMOTE_READ);
 
        ib_conn->fmr.pool = ib_create_fmr_pool(device->pd, &params);
-       if (!IS_ERR(ib_conn->fmr.pool))
-               return 0;
+       if (IS_ERR(ib_conn->fmr.pool)) {
+               ret = PTR_ERR(ib_conn->fmr.pool);
+               iser_err("FMR allocation failed, err %d\n", ret);
+               goto err;
+       }
+
+       return 0;
 
-       /* no FMR => no need for page_vec */
+err:
        kfree(ib_conn->fmr.page_vec);
        ib_conn->fmr.page_vec = NULL;
-
-       ret = PTR_ERR(ib_conn->fmr.pool);
-       ib_conn->fmr.pool = NULL;
-       if (ret != -ENOSYS) {
-               iser_err("FMR allocation failed, err %d\n", ret);
-               return ret;
-       } else {
-               iser_warn("FMRs are not supported, using unaligned mode\n");
-               return 0;
-       }
+       return ret;
 }
 
 /**
@@ -270,9 +266,7 @@ void iser_free_fmr_pool(struct ib_conn *ib_conn)
        iser_info("freeing conn %p fmr pool %p\n",
                  ib_conn, ib_conn->fmr.pool);
 
-       if (ib_conn->fmr.pool != NULL)
-               ib_destroy_fmr_pool(ib_conn->fmr.pool);
-
+       ib_destroy_fmr_pool(ib_conn->fmr.pool);
        ib_conn->fmr.pool = NULL;
 
        kfree(ib_conn->fmr.page_vec);