aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/i40evf/i40evf_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/intel/i40evf/i40evf_main.c')
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40evf_main.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
index d4157857360d..f454b58cad2e 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
@@ -968,6 +968,9 @@ void i40evf_down(struct i40evf_adapter *adapter)
968 struct net_device *netdev = adapter->netdev; 968 struct net_device *netdev = adapter->netdev;
969 struct i40evf_mac_filter *f; 969 struct i40evf_mac_filter *f;
970 970
971 if (adapter->state == __I40EVF_DOWN)
972 return;
973
971 /* remove all MAC filters */ 974 /* remove all MAC filters */
972 list_for_each_entry(f, &adapter->mac_filter_list, list) { 975 list_for_each_entry(f, &adapter->mac_filter_list, list) {
973 f->remove = true; 976 f->remove = true;
@@ -1785,12 +1788,11 @@ static int i40evf_close(struct net_device *netdev)
1785 if (adapter->state <= __I40EVF_DOWN) 1788 if (adapter->state <= __I40EVF_DOWN)
1786 return 0; 1789 return 0;
1787 1790
1788 /* signal that we are down to the interrupt handler */
1789 adapter->state = __I40EVF_DOWN;
1790 1791
1791 set_bit(__I40E_DOWN, &adapter->vsi.state); 1792 set_bit(__I40E_DOWN, &adapter->vsi.state);
1792 1793
1793 i40evf_down(adapter); 1794 i40evf_down(adapter);
1795 adapter->state = __I40EVF_DOWN;
1794 i40evf_free_traffic_irqs(adapter); 1796 i40evf_free_traffic_irqs(adapter);
1795 1797
1796 i40evf_free_all_tx_resources(adapter); 1798 i40evf_free_all_tx_resources(adapter);