be2net: Fix be_vlan_rem_vid() to check vlan id being removed

The driver decrements its vlan count without checking if it is really
present in its list. This results in an invalid vlan count and impacts
subsequent vlan add/rem ops. The function be_vlan_rem_vid() should be
updated to fix this.

Signed-off-by: Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Sriharsha Basavapatna 2016-02-03 09:49:18 +05:30 committed by David S. Miller
parent fa5c867d4d
commit 41dcdfbd09
1 changed files with 3 additions and 0 deletions

View File

@ -1463,6 +1463,9 @@ static int be_vlan_rem_vid(struct net_device *netdev, __be16 proto, u16 vid)
if (lancer_chip(adapter) && vid == 0)
return 0;
if (!test_bit(vid, adapter->vids))
return 0;
clear_bit(vid, adapter->vids);
adapter->vlans_added--;