diff options
-rw-r--r-- | drivers/net/qlcnic/qlcnic_main.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/drivers/net/qlcnic/qlcnic_main.c b/drivers/net/qlcnic/qlcnic_main.c index 3579229db4a9..5ca1b562443c 100644 --- a/drivers/net/qlcnic/qlcnic_main.c +++ b/drivers/net/qlcnic/qlcnic_main.c | |||
@@ -4198,18 +4198,13 @@ static void | |||
4198 | qlcnic_restore_indev_addr(struct net_device *netdev, unsigned long event) | 4198 | qlcnic_restore_indev_addr(struct net_device *netdev, unsigned long event) |
4199 | { | 4199 | { |
4200 | struct qlcnic_adapter *adapter = netdev_priv(netdev); | 4200 | struct qlcnic_adapter *adapter = netdev_priv(netdev); |
4201 | struct vlan_group *grp; | ||
4202 | struct net_device *dev; | 4201 | struct net_device *dev; |
4203 | u16 vid; | 4202 | u16 vid; |
4204 | 4203 | ||
4205 | qlcnic_config_indev_addr(adapter, netdev, event); | 4204 | qlcnic_config_indev_addr(adapter, netdev, event); |
4206 | 4205 | ||
4207 | grp = rcu_dereference_rtnl(netdev->vlgrp); | ||
4208 | if (!grp) | ||
4209 | return; | ||
4210 | |||
4211 | for_each_set_bit(vid, adapter->vlans, VLAN_N_VID) { | 4206 | for_each_set_bit(vid, adapter->vlans, VLAN_N_VID) { |
4212 | dev = vlan_group_get_device(grp, vid); | 4207 | dev = __vlan_find_dev_deep(netdev, vid); |
4213 | if (!dev) | 4208 | if (!dev) |
4214 | continue; | 4209 | continue; |
4215 | qlcnic_config_indev_addr(adapter, dev, event); | 4210 | qlcnic_config_indev_addr(adapter, dev, event); |