RDMA/mlx5: Check reg_create() create for errors
authorDan Carpenter <error27@gmail.com>
Mon, 6 Feb 2023 14:40:35 +0000 (17:40 +0300)
committerLeon Romanovsky <leon@kernel.org>
Tue, 7 Feb 2023 10:27:49 +0000 (12:27 +0200)
The reg_create() can fail.  Check for errors before dereferencing it.

Fixes: dd1b913fb0d0 ("RDMA/mlx5: Cache all user cacheable mkeys on dereg MR flow")
Signed-off-by: Dan Carpenter <error27@gmail.com>
Link: https://lore.kernel.org/r/Y+ERYy4wN0LsKsm+@kili
Reviewed-by: Devesh Sharma <devesh.s.sharma@oracle.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/hw/mlx5/mr.c

index bef4a50..67356f5 100644 (file)
@@ -1166,6 +1166,8 @@ static struct mlx5_ib_mr *alloc_cacheable_mr(struct ib_pd *pd,
                mutex_lock(&dev->slow_path_mutex);
                mr = reg_create(pd, umem, iova, access_flags, page_size, false);
                mutex_unlock(&dev->slow_path_mutex);
+               if (IS_ERR(mr))
+                       return mr;
                mr->mmkey.rb_key = rb_key;
                return mr;
        }