From: Kamal Heib kamalh@mellanox.com
commit 93c098af09455ea7bdc6f0f6b08f6ac14fa06cf4 upstream.
Modify mlx4_en_vlan_rx_[add/kill]_vid to return error value in case of failure.
Fixes: 8e586137e6b6 ('net: make vlan ndo_vlan_rx_[add/kill]_vid return error value') Signed-off-by: Kamal Heib kamalh@mellanox.com Signed-off-by: Tariq Toukan tariqt@mellanox.com Signed-off-by: David S. Miller davem@davemloft.net Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org
--- drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-)
--- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c @@ -424,14 +424,18 @@ static int mlx4_en_vlan_rx_add_vid(struc mutex_lock(&mdev->state_lock); if (mdev->device_up && priv->port_up) { err = mlx4_SET_VLAN_FLTR(mdev->dev, priv); - if (err) + if (err) { en_err(priv, "Failed configuring VLAN filter\n"); + goto out; + } } - if (mlx4_register_vlan(mdev->dev, priv->port, vid, &idx)) - en_dbg(HW, priv, "failed adding vlan %d\n", vid); - mutex_unlock(&mdev->state_lock); + err = mlx4_register_vlan(mdev->dev, priv->port, vid, &idx); + if (err) + en_dbg(HW, priv, "Failed adding vlan %d\n", vid);
- return 0; +out: + mutex_unlock(&mdev->state_lock); + return err; }
static int mlx4_en_vlan_rx_kill_vid(struct net_device *dev, @@ -439,7 +443,7 @@ static int mlx4_en_vlan_rx_kill_vid(stru { struct mlx4_en_priv *priv = netdev_priv(dev); struct mlx4_en_dev *mdev = priv->mdev; - int err; + int err = 0;
en_dbg(HW, priv, "Killing VID:%d\n", vid);
@@ -456,7 +460,7 @@ static int mlx4_en_vlan_rx_kill_vid(stru } mutex_unlock(&mdev->state_lock);
- return 0; + return err; }
static void mlx4_en_u64_to_mac(unsigned char dst_mac[ETH_ALEN + 2], u64 src_mac)