RDMA/core: Check for error instead of success in alloc MR function
authorGal Pressman <galpress@amazon.com>
Mon, 6 Jul 2020 12:03:41 +0000 (15:03 +0300)
committerJason Gunthorpe <jgg@nvidia.com>
Mon, 6 Jul 2020 22:24:20 +0000 (19:24 -0300)
The common kernel pattern is to check for error, not success.  Flip the if
statement accordingly and keep the main flow unindented.

Link: https://lore.kernel.org/r/20200706120343.10816-2-galpress@amazon.com
Signed-off-by: Gal Pressman <galpress@amazon.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/core/verbs.c

index 7232e6e..48d194e 100644 (file)
@@ -2133,18 +2133,19 @@ struct ib_mr *ib_alloc_mr_user(struct ib_pd *pd, enum ib_mr_type mr_type,
        }
 
        mr = pd->device->ops.alloc_mr(pd, mr_type, max_num_sg, udata);
-       if (!IS_ERR(mr)) {
-               mr->device  = pd->device;
-               mr->pd      = pd;
-               mr->dm      = NULL;
-               mr->uobject = NULL;
-               atomic_inc(&pd->usecnt);
-               mr->need_inval = false;
-               mr->res.type = RDMA_RESTRACK_MR;
-               rdma_restrack_kadd(&mr->res);
-               mr->type = mr_type;
-               mr->sig_attrs = NULL;
-       }
+       if (IS_ERR(mr))
+               goto out;
+
+       mr->device = pd->device;
+       mr->pd = pd;
+       mr->dm = NULL;
+       mr->uobject = NULL;
+       atomic_inc(&pd->usecnt);
+       mr->need_inval = false;
+       mr->res.type = RDMA_RESTRACK_MR;
+       rdma_restrack_kadd(&mr->res);
+       mr->type = mr_type;
+       mr->sig_attrs = NULL;
 
 out:
        trace_mr_alloc(pd, mr_type, max_num_sg, mr);