From 0aff1fbfe72e47412e3213648e972c339af30e4e Mon Sep 17 00:00:00 2001 From: Sathya Perla <sathya.perla@broadcom.com> Date: Wed, 27 Jul 2016 05:26:16 -0400 Subject: [PATCH] be2net: do not remove vids from driver table if be_vid_config() fails. The driver currently removes a new vid from the adapter->vids[] array if be_vid_config() returns an error, which occurs when there is an error in HW/FW. This is wrong. After the HW/FW error is recovered from, we need the complete vids[] array to re-program the vlan list. Signed-off-by: Sathya Perla <sathya.perla@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net> --- drivers/net/ethernet/emulex/benet/be_main.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index a97fc8a80fac7..243d43bfd9753 100644 --- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c @@ -1463,13 +1463,7 @@ static int be_vlan_add_vid(struct net_device *netdev, __be16 proto, u16 vid) set_bit(vid, adapter->vids); adapter->vlans_added++; - status = be_vid_config(adapter); - if (status) { - adapter->vlans_added--; - clear_bit(vid, adapter->vids); - } - - return status; + return be_vid_config(adapter); } static int be_vlan_rem_vid(struct net_device *netdev, __be16 proto, u16 vid) -- GitLab