i40evf: disable NAPI polling sooner
authorMitch Williams <mitch.a.williams@intel.com>
Thu, 29 Jan 2015 07:17:18 +0000 (07:17 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 24 Feb 2015 01:13:19 +0000 (17:13 -0800)
When closing the interface, disable NAPI polling before any other
activities. This fixes an occasional panic during close caused by the
driver trying to delete and clean rings at the same time.

Change-ID: Ib4d427b13d310258ea85b248d535da70ecf0c1e9
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Tested-by: Jim Young <james.m.young@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40evf/i40evf_main.c

index b1ca9ddf50bc79e51be197f4826e40dd3a5c80e4..eb1ac2227681af70e2859ba69a61e739cb9eea28 100644 (file)
@@ -959,6 +959,7 @@ void i40evf_down(struct i40evf_adapter *adapter)
                usleep_range(500, 1000);
 
        i40evf_irq_disable(adapter);
+       i40evf_napi_disable_all(adapter);
 
        /* remove all MAC filters */
        list_for_each_entry(f, &adapter->mac_filter_list, list) {
@@ -985,8 +986,6 @@ void i40evf_down(struct i40evf_adapter *adapter)
 
        netif_tx_stop_all_queues(netdev);
 
-       i40evf_napi_disable_all(adapter);
-
        msleep(20);
 
        netif_carrier_off(netdev);