]> www.infradead.org Git - users/hch/dma-mapping.git/commitdiff
net/mlx5: HWS, removed wrong access to a number of rules variable
authorYevgeny Kliteynik <kliteyn@nvidia.com>
Tue, 15 Oct 2024 09:32:01 +0000 (12:32 +0300)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 17 Oct 2024 10:14:07 +0000 (12:14 +0200)
Removed wrong access to the num_of_rules field of the matcher.
This is a usual u32 variable, but the access was as if it was atomic.

This fixes the following CI warnings:
  mlx5hws_bwc.c:708:17: warning: large atomic operation may incur significant performance penalty;
  the access size (4 bytes) exceeds the max lock-free size (0 bytes) [-Watomic-alignment]

Fixes: 510f9f61a112 ("net/mlx5: HWS, added API and enabled HWS support")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202409291101.6NdtMFVC-lkp@intel.com/
Signed-off-by: Yevgeny Kliteynik <kliteyn@nvidia.com>
Reviewed-by: Itamar Gozlan <igozlan@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/mlx5hws_bwc.c

index bd52b05db36704a617446cbe7c29d0e371d620ea..8f3a6f9d703da4aaca8ef2d5b9fbdae26f5a34b2 100644 (file)
@@ -691,7 +691,6 @@ static int hws_bwc_matcher_move(struct mlx5hws_bwc_matcher *bwc_matcher)
 static int
 hws_bwc_matcher_rehash_size(struct mlx5hws_bwc_matcher *bwc_matcher)
 {
-       u32 num_of_rules;
        int ret;
 
        /* If the current matcher size is already at its max size, we can't
@@ -705,8 +704,7 @@ hws_bwc_matcher_rehash_size(struct mlx5hws_bwc_matcher *bwc_matcher)
         * Need to check again if we really need rehash.
         * If the reason for rehash was size, but not any more - skip rehash.
         */
-       num_of_rules = __atomic_load_n(&bwc_matcher->num_of_rules, __ATOMIC_RELAXED);
-       if (!hws_bwc_matcher_rehash_size_needed(bwc_matcher, num_of_rules))
+       if (!hws_bwc_matcher_rehash_size_needed(bwc_matcher, bwc_matcher->num_of_rules))
                return 0;
 
        /* Now we're done all the checking - do the rehash: