]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
RDMA/rtrs-srv: Jump to dereg_mr label if allocate iu fails
authorGuoqing Jiang <guoqing.jiang@cloud.ionos.com>
Thu, 17 Dec 2020 14:19:02 +0000 (15:19 +0100)
committerJason Gunthorpe <jgg@nvidia.com>
Fri, 15 Jan 2021 19:25:09 +0000 (15:25 -0400)
The rtrs_iu_free is called in rtrs_iu_alloc if memory is limited, so we
don't need to free the same iu again.

Fixes: 9cb837480424 ("RDMA/rtrs: server: main functionality")
Link: https://lore.kernel.org/r/20201217141915.56989-7-jinpu.wang@cloud.ionos.com
Signed-off-by: Guoqing Jiang <guoqing.jiang@cloud.ionos.com>
Reviewed-by: Gioh Kim <gi-oh.kim@cloud.ionos.com>
Signed-off-by: Jack Wang <jinpu.wang@cloud.ionos.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/ulp/rtrs/rtrs-srv.c

index 341661f42add00329fbbb9d3e2c0608e83e8e90a..92a216ddd9fd32a85c46b3cc348b1583a8a9b9f3 100644 (file)
@@ -651,7 +651,7 @@ static int map_cont_bufs(struct rtrs_srv_sess *sess)
                        if (!srv_mr->iu) {
                                err = -ENOMEM;
                                rtrs_err(ss, "rtrs_iu_alloc(), err: %d\n", err);
-                               goto free_iu;
+                               goto dereg_mr;
                        }
                }
                /* Eventually dma addr for each chunk can be cached */
@@ -667,7 +667,6 @@ err:
                        srv_mr = &sess->mrs[mri];
                        sgt = &srv_mr->sgt;
                        mr = srv_mr->mr;
-free_iu:
                        rtrs_iu_free(srv_mr->iu, sess->s.dev->ib_dev, 1);
 dereg_mr:
                        ib_dereg_mr(mr);