RDMA/mlx5: Adding remote atomic access flag to updatable flags
authorOr Har-Toov <ohartoov@nvidia.com>
Wed, 3 Apr 2024 10:36:01 +0000 (13:36 +0300)
committerLeon Romanovsky <leon@kernel.org>
Mon, 8 Apr 2024 10:34:54 +0000 (13:34 +0300)
Currently IB_ACCESS_REMOTE_ATOMIC is blocked from being updated via UMR
although in some cases it should be possible. These cases are checked in
mlx5r_umr_can_reconfig function.

Fixes: ef3642c4f54d ("RDMA/mlx5: Fix error unwinds for rereg_mr")
Signed-off-by: Or Har-Toov <ohartoov@nvidia.com>
Link: https://lore.kernel.org/r/24dac73e2fa48cb806f33a932d97f3e402a5ea2c.1712140377.git.leon@kernel.org
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/hw/mlx5/mr.c

index 7f7b1f59b5f0572dd9945070d4fb2d2b15ae0ffd..ecc111ed5d86eaf70b9ecd49968249a48b665cd9 100644 (file)
@@ -1572,7 +1572,8 @@ static bool can_use_umr_rereg_access(struct mlx5_ib_dev *dev,
        unsigned int diffs = current_access_flags ^ target_access_flags;
 
        if (diffs & ~(IB_ACCESS_LOCAL_WRITE | IB_ACCESS_REMOTE_WRITE |
-                     IB_ACCESS_REMOTE_READ | IB_ACCESS_RELAXED_ORDERING))
+                     IB_ACCESS_REMOTE_READ | IB_ACCESS_RELAXED_ORDERING |
+                     IB_ACCESS_REMOTE_ATOMIC))
                return false;
        return mlx5r_umr_can_reconfig(dev, current_access_flags,
                                      target_access_flags);