net/mlx5: fix query host adapter attributes
Checks
Commit Message
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
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>
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
@@ -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;