Srinivas, Tuesday, June 11, 2019 9:29 AM, Asaf Penso: > Subject: [PATCH] net/mlx5: fix condition for calling > mlx5_link_update_unlocked_gset > > mlx5_link_update uses the newer ethtool command > ETHTOOL_GLINKSETTINGS to determine interface capabilities but falls back > to the older (deprecated) ETHTOOL_GSET command if the new method fails > for any reason. > The older method only supports reporting of capabilities up to 40G. > > However, mlx5_link_update_unlocked_gs can return a failure for a number > of reasons (including the link being down). > Using the older method in cases of transient failure of the method can result > in reporting of reduced capabilities to the application. > > The older method (mlx5_link_update_unlocked_gset) should only be > invoked if the newer method returns EOPNOTSUPP. > > Ref: https://bugs.dpdk.org/show_bug.cgi?id=289 > Fixes: 7d2e32f7 ("net/mlx5: fix ethtool link setting call order") > Cc: sta...@dpdk.org > > Signed-off-by: Asaf Penso <as...@mellanox.com> > Reported-by: Srinivas Narayan <srinivas.nara...@att.com>
Can you confirm this patch fixes the issue you reported on? > --- > drivers/net/mlx5/mlx5_ethdev.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/mlx5/mlx5_ethdev.c > b/drivers/net/mlx5/mlx5_ethdev.c index ac0500a..61e12cc 100644 > --- a/drivers/net/mlx5/mlx5_ethdev.c > +++ b/drivers/net/mlx5/mlx5_ethdev.c > @@ -947,7 +947,7 @@ int mlx5_fw_version_get(struct rte_eth_dev *dev, > char *fw_ver, size_t fw_size) > > do { > ret = mlx5_link_update_unlocked_gs(dev, &dev_link); > - if (ret) > + if (ret == -ENOTSUP) > ret = mlx5_link_update_unlocked_gset(dev, > &dev_link); > if (ret == 0) > break; > -- > 1.8.3.1