RDMA/mlx5: Fix counter update on MR cache mkey creation
authorMichael Guralnik <michaelgur@nvidia.com>
Tue, 3 Sep 2024 11:24:48 +0000 (14:24 +0300)
committerLeon Romanovsky <leon@kernel.org>
Mon, 9 Sep 2024 18:17:09 +0000 (21:17 +0300)
commit6f5cd6ac9a4201e4ba6f10b76a9da8044d6e38b0
treea61007afb192194e8b159cd4ef22e1fa0988c73e
parent30e6bd8d3b5639f8f4261e5e6c0917ce264b8dc2
RDMA/mlx5: Fix counter update on MR cache mkey creation

After an mkey is created, update the counter for pending mkeys before
reshceduling the work that is filling the cache.

Rescheduling the work with a full MR cache entry and a wrong 'pending'
counter will cause us to miss disabling the fill_to_high_water flag.
Thus leaving the cache full but with an indication that it's still
needs to be filled up to it's full size (2 * limit).
Next time an mkey will be taken from the cache, we'll unnecessarily
continue the process of filling the cache to it's full size.

Fixes: 57e7071683ef ("RDMA/mlx5: Implement mkeys management via LIFO queue")
Signed-off-by: Michael Guralnik <michaelgur@nvidia.com>
Link: https://patch.msgid.link/0f44f462ba22e45f72cb3d0ec6a748634086b8d0.1725362530.git.leon@kernel.org
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/hw/mlx5/mr.c