mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
net/mlx5e: Prevent bridge link show failure for non-eswitch-allowed devices
[ Upstream commit e92df790d07a8eea873efcb84776e7b71f81c7d5 ]
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: 4b89251de0 ("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>
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Link: https://patch.msgid.link/1741644104-97767-7-git-send-email-tariqt@nvidia.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
86ff45f5f6
commit
39e507d4f4
@@ -4791,11 +4791,9 @@ static int mlx5e_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
|
|||||||
struct mlx5e_priv *priv = netdev_priv(dev);
|
struct mlx5e_priv *priv = netdev_priv(dev);
|
||||||
struct mlx5_core_dev *mdev = priv->mdev;
|
struct mlx5_core_dev *mdev = priv->mdev;
|
||||||
u8 mode, setting;
|
u8 mode, setting;
|
||||||
int err;
|
|
||||||
|
|
||||||
err = mlx5_eswitch_get_vepa(mdev->priv.eswitch, &setting);
|
if (mlx5_eswitch_get_vepa(mdev->priv.eswitch, &setting))
|
||||||
if (err)
|
return -EOPNOTSUPP;
|
||||||
return err;
|
|
||||||
mode = setting ? BRIDGE_MODE_VEPA : BRIDGE_MODE_VEB;
|
mode = setting ? BRIDGE_MODE_VEPA : BRIDGE_MODE_VEB;
|
||||||
return ndo_dflt_bridge_getlink(skb, pid, seq, dev,
|
return ndo_dflt_bridge_getlink(skb, pid, seq, dev,
|
||||||
mode,
|
mode,
|
||||||
|
|||||||
Reference in New Issue
Block a user