i40e: Add a call to set the client interface down
authorCatherine Sullivan <catherine.sullivan@intel.com>
Mon, 16 May 2016 17:26:34 +0000 (10:26 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Mon, 27 Jun 2016 22:25:36 +0000 (15:25 -0700)
We were failing to set the client interface down when we put the VSI
down. Add this call so that the client doesn't get an open called with
no close.

Also remove an un-needed delay. The VF should not be affected at all by
i40e_down.

Change-ID: I1135dffef534bf84e6fed57cf51bcf590e6cfaf7
Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_main.c

index 9a26eccc1fd1cdc8a419a335196b224c590c70c8..a2b401274def69dba2065e7b3aef1528271062ff 100644 (file)
@@ -5181,12 +5181,6 @@ static void i40e_vsi_reinit_locked(struct i40e_vsi *vsi)
                usleep_range(1000, 2000);
        i40e_down(vsi);
 
-       /* Give a VF some time to respond to the reset.  The
-        * two second wait is based upon the watchdog cycle in
-        * the VF driver.
-        */
-       if (vsi->type == I40E_VSI_SRIOV)
-               msleep(2000);
        i40e_up(vsi);
        clear_bit(__I40E_CONFIG_BUSY, &pf->state);
 }
@@ -5229,6 +5223,9 @@ void i40e_down(struct i40e_vsi *vsi)
                i40e_clean_tx_ring(vsi->tx_rings[i]);
                i40e_clean_rx_ring(vsi->rx_rings[i]);
        }
+
+       i40e_notify_client_of_netdev_close(vsi, false);
+
 }
 
 /**
@@ -5931,7 +5928,6 @@ static void i40e_fdir_flush_and_replay(struct i40e_pf *pf)
                if (I40E_DEBUG_FD & pf->hw.debug_mask)
                        dev_info(&pf->pdev->dev, "FD Filter table flushed and FD-SB replayed.\n");
        }
-
 }
 
 /**