From 0aff1fbfe72e47412e3213648e972c339af30e4e Mon Sep 17 00:00:00 2001 From: Sathya Perla Date: Wed, 27 Jul 2016 05:26:16 -0400 Subject: 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 Signed-off-by: David S. Miller --- drivers/net/ethernet/emulex/benet/be_main.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) (limited to 'drivers/net/ethernet/emulex') diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index a97fc8a80fac..243d43bfd975 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) -- cgit v1.2.3