net/mlx5: Read the TC mapping of all priorities on ETS query
[ Upstream commit44d553188c
] When ETS configurations are queried by the user to get the mapping assignment between packet priority and traffic class, only priorities up to maximum TCs are queried from QTCT register in FW to retrieve their assigned TC, leaving the rest of the priorities mapped to the default TC #0 which might be misleading. Fix by querying the TC mapping of all priorities on each ETS query, regardless of the maximum number of TCs configured in FW. Fixes:820c2c5e77
("net/mlx5e: Read ETS settings directly from firmware") Signed-off-by: Maher Sanalla <msanalla@nvidia.com> Reviewed-by: Moshe Shemesh <moshe@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
d69c2ded95
commit
fd6f643dea
@ -109,12 +109,14 @@ static int mlx5e_dcbnl_ieee_getets(struct net_device *netdev,
|
|||||||
if (!MLX5_CAP_GEN(priv->mdev, ets))
|
if (!MLX5_CAP_GEN(priv->mdev, ets))
|
||||||
return -EOPNOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
|
|
||||||
ets->ets_cap = mlx5_max_tc(priv->mdev) + 1;
|
for (i = 0; i < IEEE_8021QAZ_MAX_TCS; i++) {
|
||||||
for (i = 0; i < ets->ets_cap; i++) {
|
|
||||||
err = mlx5_query_port_prio_tc(mdev, i, &ets->prio_tc[i]);
|
err = mlx5_query_port_prio_tc(mdev, i, &ets->prio_tc[i]);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
ets->ets_cap = mlx5_max_tc(priv->mdev) + 1;
|
||||||
|
for (i = 0; i < ets->ets_cap; i++) {
|
||||||
err = mlx5_query_port_tc_group(mdev, i, &tc_group[i]);
|
err = mlx5_query_port_tc_group(mdev, i, &tc_group[i]);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
Reference in New Issue
Block a user