diff options
Diffstat (limited to 'drivers/net/ethernet/intel/igb/igb_main.c')
-rw-r--r-- | drivers/net/ethernet/intel/igb/igb_main.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index c55552c3d2f9..02b23f6277fb 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c | |||
@@ -3005,6 +3005,8 @@ static int igb_sw_init(struct igb_adapter *adapter) | |||
3005 | /* Setup and initialize a copy of the hw vlan table array */ | 3005 | /* Setup and initialize a copy of the hw vlan table array */ |
3006 | adapter->shadow_vfta = kcalloc(E1000_VLAN_FILTER_TBL_SIZE, sizeof(u32), | 3006 | adapter->shadow_vfta = kcalloc(E1000_VLAN_FILTER_TBL_SIZE, sizeof(u32), |
3007 | GFP_ATOMIC); | 3007 | GFP_ATOMIC); |
3008 | if (!adapter->shadow_vfta) | ||
3009 | return -ENOMEM; | ||
3008 | 3010 | ||
3009 | /* This call may decrease the number of queues */ | 3011 | /* This call may decrease the number of queues */ |
3010 | if (igb_init_interrupt_scheme(adapter, true)) { | 3012 | if (igb_init_interrupt_scheme(adapter, true)) { |
@@ -3172,7 +3174,7 @@ static int __igb_close(struct net_device *netdev, bool suspending) | |||
3172 | 3174 | ||
3173 | static int igb_close(struct net_device *netdev) | 3175 | static int igb_close(struct net_device *netdev) |
3174 | { | 3176 | { |
3175 | if (netif_device_present(netdev)) | 3177 | if (netif_device_present(netdev) || netdev->dismantle) |
3176 | return __igb_close(netdev, false); | 3178 | return __igb_close(netdev, false); |
3177 | return 0; | 3179 | return 0; |
3178 | } | 3180 | } |