net/mlx5: fix the delay drop bit set overflow

Message ID 20211112143842.9290-1-bingz@nvidia.com (mailing list archive)
State Accepted, archived
Delegated to: Raslan Darawsheh
Headers
Series net/mlx5: fix the delay drop bit set overflow |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/github-robot: build success github build: passed
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-x86_64-unit-testing fail Testing issues
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS

Commit Message

Bing Zhao Nov. 12, 2021, 2:38 p.m. UTC
  The attribute to record the global control of hairpin queues' delay
drop was defined as a bit-field with one bit, and the intention was
to reduce the memory overhead. In the meanwhile, the macro was
defined as an enumerated value 0x2.

No matter what value inputted via devarg, the lowest bit was always
zero and the higher bits would be ignored. For hairpin queues, the
delay drop attribute couldn't be enabled.

With the commit, the double logical negation is used to fix this.

Fixes: febcac7b46cd ("net/mlx5: support Rx queue delay drop")

Signed-off-by: Bing Zhao <bingz@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Raslan Darawsheh Nov. 14, 2021, 3:28 p.m. UTC | #1
Hi,


> -----Original Message-----
> From: Bing Zhao <bingz@nvidia.com>
> Sent: Friday, November 12, 2021 4:39 PM
> To: Slava Ovsiienko <viacheslavo@nvidia.com>; Matan Azrad
> <matan@nvidia.com>
> Cc: dev@dpdk.org; Raslan Darawsheh <rasland@nvidia.com>
> Subject: [PATCH] net/mlx5: fix the delay drop bit set overflow
> 
> The attribute to record the global control of hairpin queues' delay drop was
> defined as a bit-field with one bit, and the intention was to reduce the
> memory overhead. In the meanwhile, the macro was defined as an
> enumerated value 0x2.
> 
> No matter what value inputted via devarg, the lowest bit was always zero
> and the higher bits would be ignored. For hairpin queues, the delay drop
> attribute couldn't be enabled.
> 
> With the commit, the double logical negation is used to fix this.
> 
> Fixes: febcac7b46cd ("net/mlx5: support Rx queue delay drop")
> 
> Signed-off-by: Bing Zhao <bingz@nvidia.com>
> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>

Patch applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh
  

Patch

diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
index f5990dd757..2f5d74105a 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
@@ -1978,8 +1978,8 @@  mlx5_args_check(const char *key, const char *val, void *opaque)
 	} else if (strcmp(MLX5_ALLOW_DUPLICATE_PATTERN, key) == 0) {
 		config->allow_duplicate_pattern = !!tmp;
 	} else if (strcmp(MLX5_DELAY_DROP, key) == 0) {
-		config->std_delay_drop = tmp & MLX5_DELAY_DROP_STANDARD;
-		config->hp_delay_drop = tmp & MLX5_DELAY_DROP_HAIRPIN;
+		config->std_delay_drop = !!(tmp & MLX5_DELAY_DROP_STANDARD);
+		config->hp_delay_drop = !!(tmp & MLX5_DELAY_DROP_HAIRPIN);
 	} else {
 		DRV_LOG(WARNING, "%s: unknown parameter", key);
 		rte_errno = EINVAL;