mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
net/mlx5e: QoS, Fix wrongfully setting parent_element_id on MODIFY_SCHEDULING_ELEMENT
According to HW spec parent_element_id field should be reserved (0x0) when calling
MODIFY_SCHEDULING_ELEMENT command.
This patch remove the wrong initialization of reserved field, parent_element_id, on
mlx5_qos_update_node.
Fixes: 214baf2287
("net/mlx5e: Support HTB offload")
Signed-off-by: Maor Dickman <maord@nvidia.com>
Reviewed-by: Eli Cohen <elic@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
This commit is contained in:
parent
f51471d193
commit
4ddf77f9bc
@ -637,7 +637,7 @@ mlx5e_htb_update_children(struct mlx5e_htb *htb, struct mlx5e_qos_node *node,
|
||||
if (child->bw_share == old_bw_share)
|
||||
continue;
|
||||
|
||||
err_one = mlx5_qos_update_node(htb->mdev, child->hw_id, child->bw_share,
|
||||
err_one = mlx5_qos_update_node(htb->mdev, child->bw_share,
|
||||
child->max_average_bw, child->hw_id);
|
||||
if (!err && err_one) {
|
||||
err = err_one;
|
||||
@ -671,7 +671,7 @@ mlx5e_htb_node_modify(struct mlx5e_htb *htb, u16 classid, u64 rate, u64 ceil,
|
||||
mlx5e_htb_convert_rate(htb, rate, node->parent, &bw_share);
|
||||
mlx5e_htb_convert_ceil(htb, ceil, &max_average_bw);
|
||||
|
||||
err = mlx5_qos_update_node(htb->mdev, node->parent->hw_id, bw_share,
|
||||
err = mlx5_qos_update_node(htb->mdev, bw_share,
|
||||
max_average_bw, node->hw_id);
|
||||
if (err) {
|
||||
NL_SET_ERR_MSG_MOD(extack, "Firmware error when modifying a node.");
|
||||
|
@ -62,13 +62,12 @@ int mlx5_qos_create_root_node(struct mlx5_core_dev *mdev, u32 *id)
|
||||
return mlx5_qos_create_inner_node(mdev, MLX5_QOS_DEFAULT_DWRR_UID, 0, 0, id);
|
||||
}
|
||||
|
||||
int mlx5_qos_update_node(struct mlx5_core_dev *mdev, u32 parent_id,
|
||||
int mlx5_qos_update_node(struct mlx5_core_dev *mdev,
|
||||
u32 bw_share, u32 max_avg_bw, u32 id)
|
||||
{
|
||||
u32 sched_ctx[MLX5_ST_SZ_DW(scheduling_context)] = {0};
|
||||
u32 bitmask = 0;
|
||||
|
||||
MLX5_SET(scheduling_context, sched_ctx, parent_element_id, parent_id);
|
||||
MLX5_SET(scheduling_context, sched_ctx, bw_share, bw_share);
|
||||
MLX5_SET(scheduling_context, sched_ctx, max_average_bw, max_avg_bw);
|
||||
|
||||
|
@ -23,7 +23,7 @@ int mlx5_qos_create_leaf_node(struct mlx5_core_dev *mdev, u32 parent_id,
|
||||
int mlx5_qos_create_inner_node(struct mlx5_core_dev *mdev, u32 parent_id,
|
||||
u32 bw_share, u32 max_avg_bw, u32 *id);
|
||||
int mlx5_qos_create_root_node(struct mlx5_core_dev *mdev, u32 *id);
|
||||
int mlx5_qos_update_node(struct mlx5_core_dev *mdev, u32 parent_id, u32 bw_share,
|
||||
int mlx5_qos_update_node(struct mlx5_core_dev *mdev, u32 bw_share,
|
||||
u32 max_avg_bw, u32 id);
|
||||
int mlx5_qos_destroy_node(struct mlx5_core_dev *mdev, u32 id);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user