Commit 48291c22 authored by Vasundhara Volam's avatar Vasundhara Volam Committed by David S. Miller

be2net: Fix vlans_added counter

When a VLAN is added by user, adapter->vlans_added is incremented.
But if the VLAN is already programmed in HW, driver ends up
incrementing the counter wrongly.

Increment the counter only if VLAN is not already programmed in the HW.
Signed-off-by: default avatarVasundhara Volam <vasundhara.volam@emulex.com>
Signed-off-by: default avatarSathya Perla <sathya.perla@emulex.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a5243dab
...@@ -1138,7 +1138,10 @@ static int be_vlan_add_vid(struct net_device *netdev, __be16 proto, u16 vid) ...@@ -1138,7 +1138,10 @@ static int be_vlan_add_vid(struct net_device *netdev, __be16 proto, u16 vid)
/* Packets with VID 0 are always received by Lancer by default */ /* Packets with VID 0 are always received by Lancer by default */
if (lancer_chip(adapter) && vid == 0) if (lancer_chip(adapter) && vid == 0)
goto ret; return status;
if (adapter->vlan_tag[vid])
return status;
adapter->vlan_tag[vid] = 1; adapter->vlan_tag[vid] = 1;
adapter->vlans_added++; adapter->vlans_added++;
...@@ -1148,7 +1151,7 @@ static int be_vlan_add_vid(struct net_device *netdev, __be16 proto, u16 vid) ...@@ -1148,7 +1151,7 @@ static int be_vlan_add_vid(struct net_device *netdev, __be16 proto, u16 vid)
adapter->vlans_added--; adapter->vlans_added--;
adapter->vlan_tag[vid] = 0; adapter->vlan_tag[vid] = 0;
} }
ret:
return status; return status;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment