]> www.infradead.org Git - users/willy/pagecache.git/commitdiff
net/mlx5e: Prevent bridge link show failure for non-eswitch-allowed devices
authorCarolina Jubran <cjubran@nvidia.com>
Mon, 10 Mar 2025 22:01:44 +0000 (00:01 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 13 Mar 2025 12:11:15 +0000 (13:11 +0100)
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>
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>
drivers/net/ethernet/mellanox/mlx5/core/en_main.c

index a814b63ed97e57a1b26e2c7e72173bd338595d21..8fcaee381b0e09a3825b10275ce24a2cf8611224 100644 (file)
@@ -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,