فهرست منبع

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>
Sriharsha Basavapatna 9 سال پیش
والد
کامیت
41dcdfbd09
1فایلهای تغییر یافته به همراه3 افزوده شده و 0 حذف شده
  1. 3 0
      drivers/net/ethernet/emulex/benet/be_main.c

+ 3 - 0
drivers/net/ethernet/emulex/benet/be_main.c

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