[dpdk-dev] [PATCH v1] regex/mlx5: fix sq free check on enqueue

Yuval Avnery yuvalav at mellanox.com
Tue Jul 28 19:54:59 CEST 2020


Free sq check had a bug, causing jobs to overwrite.

Fixes: 8740ba5fe57f ("regex/mlx5: add enqueue implementation")
Signed-off-by: Yuval Avnery <yuvalav at mellanox.com>
Acked-by: Ori Kam <orika at mellanox.com>
---
 drivers/regex/mlx5/mlx5_regex_fastpath.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/regex/mlx5/mlx5_regex_fastpath.c b/drivers/regex/mlx5/mlx5_regex_fastpath.c
index fc5a7fc..8dfa72c 100644
--- a/drivers/regex/mlx5/mlx5_regex_fastpath.c
+++ b/drivers/regex/mlx5/mlx5_regex_fastpath.c
@@ -152,10 +152,7 @@ struct mlx5_regex_job {
 
 static inline int
 can_send(struct mlx5_regex_sq *sq) {
-	return unlikely(sq->ci > sq->pi) ?
-			MLX5_REGEX_MAX_WQE_INDEX + sq->pi - sq->ci <
-			sq_size_get(sq) :
-			sq->pi - sq->ci < sq_size_get(sq);
+	return ((sq->ci - sq->pi) & (sq_size_get(sq) - 1)) != 1;
 }
 
 static inline uint32_t
-- 
1.8.3.1



More information about the dev mailing list