mirror of https://gitee.com/openkylin/linux.git
RDMA/rtrs-srv: Jump to dereg_mr label if allocate iu fails
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: 9cb8374804
("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>
This commit is contained in:
parent
f47e4e3e71
commit
f77c4839ee
|
@ -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 @@ static int map_cont_bufs(struct rtrs_srv_sess *sess)
|
|||
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);
|
||||
|
|
Loading…
Reference in New Issue