While adding vlans, when the HW limit of vlan filters is reached, the
driver enables vlan promiscuous mode.
Similarily, while removing vlans, the driver must re-enable HW filtering
as soon as the number of vlan filters is within the HW limit.
Signed-off-by: Kalesh AP <kalesh.purayil@emulex.com>
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
 static int be_vlan_rem_vid(struct net_device *netdev, __be16 proto, u16 vid)
 {
        struct be_adapter *adapter = netdev_priv(netdev);
-       int status = 0;
 
        /* Packets with VID 0 are always received by Lancer by default */
        if (lancer_chip(adapter) && vid == 0)
-               goto ret;
+               return 0;
 
        clear_bit(vid, adapter->vids);
-       status = be_vid_config(adapter);
-       if (!status)
-               adapter->vlans_added--;
-       else
-               set_bit(vid, adapter->vids);
-ret:
-       return status;
+       adapter->vlans_added--;
+
+       return be_vid_config(adapter);
 }
 
 static void be_clear_promisc(struct be_adapter *adapter)