aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40evf_main.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
index da901f4b9c18..b08efafee1ae 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
@@ -971,8 +971,10 @@ void i40evf_down(struct i40evf_adapter *adapter)
971 &adapter->crit_section)) 971 &adapter->crit_section))
972 usleep_range(500, 1000); 972 usleep_range(500, 1000);
973 973
974 i40evf_irq_disable(adapter); 974 netif_carrier_off(netdev);
975 netif_tx_disable(netdev);
975 i40evf_napi_disable_all(adapter); 976 i40evf_napi_disable_all(adapter);
977 i40evf_irq_disable(adapter);
976 978
977 /* remove all MAC filters */ 979 /* remove all MAC filters */
978 list_for_each_entry(f, &adapter->mac_filter_list, list) { 980 list_for_each_entry(f, &adapter->mac_filter_list, list) {
@@ -995,13 +997,7 @@ void i40evf_down(struct i40evf_adapter *adapter)
995 adapter->aq_required |= I40EVF_FLAG_AQ_DEL_VLAN_FILTER; 997 adapter->aq_required |= I40EVF_FLAG_AQ_DEL_VLAN_FILTER;
996 adapter->aq_required |= I40EVF_FLAG_AQ_DISABLE_QUEUES; 998 adapter->aq_required |= I40EVF_FLAG_AQ_DISABLE_QUEUES;
997 } 999 }
998 netif_tx_disable(netdev);
999 1000
1000 netif_tx_stop_all_queues(netdev);
1001
1002 msleep(20);
1003
1004 netif_carrier_off(netdev);
1005 clear_bit(__I40EVF_IN_CRITICAL_TASK, &adapter->crit_section); 1001 clear_bit(__I40EVF_IN_CRITICAL_TASK, &adapter->crit_section);
1006} 1002}
1007 1003