net/mlx5: fix query host adapter attributes

Message ID 1573548838-11322-1-git-send-email-viacheslavo@mellanox.com (mailing list archive)
State Accepted, archived
Delegated to: Raslan Darawsheh
Headers
Series net/mlx5: fix query host adapter attributes |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-compilation success Compile Testing PASS
ci/travis-robot success Travis build: passed
ci/Intel-compilation success Compilation OK
ci/iol-mellanox-Performance success Performance Testing PASS

Commit Message

Slava Ovsiienko Nov. 12, 2019, 8:53 a.m. UTC
  Host adapter attributes are queried from kernel via multiple
DevX calls. The retrieved data were erroneously overwritten,
the order of querying is fixed.

Fixes: e470ec789d4d ("net/mlx5: fill meter capabilities using DevX")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
---
 drivers/net/mlx5/mlx5_devx_cmds.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
  

Comments

Matan Azrad Nov. 12, 2019, 8:56 a.m. UTC | #1
From: Viacheslav Ovsiienko
> Host adapter attributes are queried from kernel via multiple DevX calls. The
> retrieved data were erroneously overwritten, the order of querying is fixed.
> 
> Fixes: e470ec789d4d ("net/mlx5: fill meter capabilities using DevX")
> 
> Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
  
Raslan Darawsheh Nov. 12, 2019, 11:41 a.m. UTC | #2
Hi,

> -----Original Message-----
> From: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
> Sent: Tuesday, November 12, 2019 10:54 AM
> To: dev@dpdk.org
> Cc: Matan Azrad <matan@mellanox.com>; Raslan Darawsheh
> <rasland@mellanox.com>; Ori Kam <orika@mellanox.com>
> Subject: [PATCH] net/mlx5: fix query host adapter attributes
> 
> Host adapter attributes are queried from kernel via multiple
> DevX calls. The retrieved data were erroneously overwritten,
> the order of querying is fixed.
> 
> Fixes: e470ec789d4d ("net/mlx5: fill meter capabilities using DevX")
> 
> Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
> ---
>  drivers/net/mlx5/mlx5_devx_cmds.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/mlx5/mlx5_devx_cmds.c
> b/drivers/net/mlx5/mlx5_devx_cmds.c
> index dcb7609..9893287 100644
> --- a/drivers/net/mlx5/mlx5_devx_cmds.c
> +++ b/drivers/net/mlx5/mlx5_devx_cmds.c
> @@ -335,6 +335,11 @@ struct mlx5_devx_obj *
>  	attr->log_max_hairpin_num_packets = MLX5_GET
>  		(cmd_hca_cap, hcattr, log_min_hairpin_wq_data_sz);
>  	attr->vhca_id = MLX5_GET(cmd_hca_cap, hcattr, vhca_id);
> +	attr->eth_net_offloads = MLX5_GET(cmd_hca_cap, hcattr,
> +					  eth_net_offloads);
> +	attr->eth_virt = MLX5_GET(cmd_hca_cap, hcattr, eth_virt);
> +	attr->flex_parser_protocols = MLX5_GET(cmd_hca_cap, hcattr,
> +					       flex_parser_protocols);
>  	attr->qos.sup = MLX5_GET(cmd_hca_cap, hcattr, qos);
>  	if (attr->qos.sup) {
>  		MLX5_SET(query_hca_cap_in, in, op_mod,
> @@ -358,11 +363,6 @@ struct mlx5_devx_obj *
>  		attr->qos.flow_meter_reg_c_ids =
>  			MLX5_GET(qos_cap, hcattr, flow_meter_reg_id);
>  	}
> -	attr->eth_net_offloads = MLX5_GET(cmd_hca_cap, hcattr,
> -					  eth_net_offloads);
> -	attr->eth_virt = MLX5_GET(cmd_hca_cap, hcattr, eth_virt);
> -	attr->flex_parser_protocols = MLX5_GET(cmd_hca_cap, hcattr,
> -					       flex_parser_protocols);
>  	if (!attr->eth_net_offloads)
>  		return 0;
> 
> --
> 1.8.3.1


Patch applied to next-net-mlx,
Kindest regards,
Raslan Darawsheh
  

Patch

diff --git a/drivers/net/mlx5/mlx5_devx_cmds.c b/drivers/net/mlx5/mlx5_devx_cmds.c
index dcb7609..9893287 100644
--- a/drivers/net/mlx5/mlx5_devx_cmds.c
+++ b/drivers/net/mlx5/mlx5_devx_cmds.c
@@ -335,6 +335,11 @@  struct mlx5_devx_obj *
 	attr->log_max_hairpin_num_packets = MLX5_GET
 		(cmd_hca_cap, hcattr, log_min_hairpin_wq_data_sz);
 	attr->vhca_id = MLX5_GET(cmd_hca_cap, hcattr, vhca_id);
+	attr->eth_net_offloads = MLX5_GET(cmd_hca_cap, hcattr,
+					  eth_net_offloads);
+	attr->eth_virt = MLX5_GET(cmd_hca_cap, hcattr, eth_virt);
+	attr->flex_parser_protocols = MLX5_GET(cmd_hca_cap, hcattr,
+					       flex_parser_protocols);
 	attr->qos.sup = MLX5_GET(cmd_hca_cap, hcattr, qos);
 	if (attr->qos.sup) {
 		MLX5_SET(query_hca_cap_in, in, op_mod,
@@ -358,11 +363,6 @@  struct mlx5_devx_obj *
 		attr->qos.flow_meter_reg_c_ids =
 			MLX5_GET(qos_cap, hcattr, flow_meter_reg_id);
 	}
-	attr->eth_net_offloads = MLX5_GET(cmd_hca_cap, hcattr,
-					  eth_net_offloads);
-	attr->eth_virt = MLX5_GET(cmd_hca_cap, hcattr, eth_virt);
-	attr->flex_parser_protocols = MLX5_GET(cmd_hca_cap, hcattr,
-					       flex_parser_protocols);
 	if (!attr->eth_net_offloads)
 		return 0;