Message ID | 1741644104-97767-7-git-send-email-tariqt@nvidia.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mlx5 misc fixes 2025-03-10 | expand |
On Tue, Mar 11, 2025 at 12:01:44AM +0200, Tariq Toukan wrote: > From: Carolina Jubran <cjubran@nvidia.com> > > mlx5_eswitch_get_vepa returns -EPERM if the device lacks > eswitch_manager capability, blocking mlx5e_bridge_getlink from > retrieving VEPA mode. Since mlx5e_bridge_getlink implements > ndo_bridge_getlink, returning -EPERM causes bridge link show to fail > instead of skipping devices without this capability. > > To avoid this, return -EOPNOTSUPP from mlx5e_bridge_getlink when > mlx5_eswitch_get_vepa fails, ensuring the command continues processing > other devices while ignoring those without the necessary capability. > > Fixes: 4b89251de024 ("net/mlx5: Support ndo bridge_setlink and getlink") > Signed-off-by: Carolina Jubran <cjubran@nvidia.com> > Reviewed-by: Jianbo Liu <jianbol@nvidia.com> > Signed-off-by: Tariq Toukan <tariqt@nvidia.com> > --- > drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c > index a814b63ed97e..8fcaee381b0e 100644 > --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c > +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c > @@ -5132,11 +5132,9 @@ static int mlx5e_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq, > struct mlx5e_priv *priv = netdev_priv(dev); > struct mlx5_core_dev *mdev = priv->mdev; > u8 mode, setting; > - int err; > > - err = mlx5_eswitch_get_vepa(mdev->priv.eswitch, &setting); > - if (err) > - return err; > + if (mlx5_eswitch_get_vepa(mdev->priv.eswitch, &setting)) > + return -EOPNOTSUPP; > mode = setting ? BRIDGE_MODE_VEPA : BRIDGE_MODE_VEB; > return ndo_dflt_bridge_getlink(skb, pid, seq, dev, > mode, Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> > -- > 2.31.1
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c index a814b63ed97e..8fcaee381b0e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -5132,11 +5132,9 @@ static int mlx5e_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq, struct mlx5e_priv *priv = netdev_priv(dev); struct mlx5_core_dev *mdev = priv->mdev; u8 mode, setting; - int err; - err = mlx5_eswitch_get_vepa(mdev->priv.eswitch, &setting); - if (err) - return err; + if (mlx5_eswitch_get_vepa(mdev->priv.eswitch, &setting)) + return -EOPNOTSUPP; mode = setting ? BRIDGE_MODE_VEPA : BRIDGE_MODE_VEB; return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode,