Re: [PATCH RFC 05/12] RDMA/rtrs-srv: Correct the checking of ib_map_mr_sg

Jinpu Wang
2022-11-15T11:46:39Z

On Sun, Nov 13, 2022 at 2:08 AM Guoqing Jiang <guoqing.jiang@linux.dev> wrote:
>
> We should check with nr_sgt, also the only successful case is that
> all sg elements are mapped, so make it explict.
>
> Signed-off-by: Guoqing Jiang <guoqing.jiang@linux.dev>
> ---
> drivers/infiniband/ulp/rtrs/rtrs-srv.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/infiniband/ulp/rtrs/rtrs-srv.c b/drivers/infiniband/ulp/rtrs/rtrs-srv.c
> index 88eae0dcf87f..f3bf5bbb4377 100644
> --- a/drivers/infiniband/ulp/rtrs/rtrs-srv.c
> +++ b/drivers/infiniband/ulp/rtrs/rtrs-srv.c
> @@ -622,8 +622,8 @@ static int map_cont_bufs(struct rtrs_srv_path *srv_path)
> }
> nr = ib_map_mr_sg(mr, sgt->sgl, nr_sgt,
> NULL, max_chunk_size);
> - if (nr < 0 || nr < sgt->nents) {
> - err = nr < 0 ? nr : -EINVAL;
> + if (nr != nr_sgt) {
> + err = -EINVAL;
but with this, the initial errno are lost, we only return EINVAL
> goto dereg_mr;
> }
>
> --
> 2.31.1
>