RDMA/mlx5: Remove extra unlock on error path
authorJason Gunthorpe <jgg@nvidia.com>
Tue, 28 May 2024 12:52:52 +0000 (15:52 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jun 2024 11:49:12 +0000 (13:49 +0200)
commit c1eb2512596fb3542357bb6c34c286f5e0374538 upstream.

The below commit lifted the locking out of this function but left this
error path unlock behind resulting in unbalanced locking. Remove the
missed unlock too.

Cc: stable@vger.kernel.org
Fixes: 627122280c87 ("RDMA/mlx5: Add work to remove temporary entries from the cache")
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Michael Guralnik <michaelgur@nvidia.com>
Link: https://lore.kernel.org/r/78090c210c750f47219b95248f9f782f34548bb1.1716900410.git.leon@kernel.org
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/infiniband/hw/mlx5/mr.c

index 46847249b46770343fcd4cc0a60ddc7de8b842db..2bc34123fe2fa3743326b67242d50b361a7df4d7 100644 (file)
@@ -697,10 +697,8 @@ static int mlx5_cache_ent_insert(struct mlx5_mkey_cache *cache,
                        new = &((*new)->rb_left);
                if (cmp < 0)
                        new = &((*new)->rb_right);
-               if (cmp == 0) {
-                       mutex_unlock(&cache->rb_lock);
+               if (cmp == 0)
                        return -EEXIST;
-               }
        }
 
        /* Add new node and rebalance tree. */