aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/i40e/i40e_main.c
diff options
context:
space:
mode:
authorAnjali Singhai Jain <anjali.singhai@intel.com>2014-02-11 08:26:30 +0000
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2014-03-14 16:30:03 -0700
commitca64fa4e7eda5d9e2b5f424e901983b86ba0fc49 (patch)
treefafce3146ff40810d9aef7112920595792cb9a7b /drivers/net/ethernet/intel/i40e/i40e_main.c
parenti40e: Add code to handle FD table full condition (diff)
downloadlinux-dev-ca64fa4e7eda5d9e2b5f424e901983b86ba0fc49.tar.xz
linux-dev-ca64fa4e7eda5d9e2b5f424e901983b86ba0fc49.zip
i40e: Bug fix for FDIR replay logic
The FDIR replay logic was being run a little too soon (before the queues were enabled) and hence the tail bump was not effective till a later transaction happened on the queue. Change-ID: Icfd7cd2e79fc3cae3cbd3f703a2b3a148b4e7bf6 Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com> Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/i40e/i40e_main.c')
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_main.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 6185856689bc..669715bb3400 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -2456,8 +2456,6 @@ static int i40e_vsi_configure(struct i40e_vsi *vsi)
i40e_set_vsi_rx_mode(vsi);
i40e_restore_vlan(vsi);
i40e_vsi_config_dcb_rings(vsi);
- if (vsi->type == I40E_VSI_FDIR)
- i40e_fdir_filter_restore(vsi);
err = i40e_vsi_configure_tx(vsi);
if (!err)
err = i40e_vsi_configure_rx(vsi);
@@ -4088,6 +4086,10 @@ static int i40e_up_complete(struct i40e_vsi *vsi)
} else if (vsi->netdev) {
netdev_info(vsi->netdev, "NIC Link is Down\n");
}
+
+ /* replay FDIR SB filters */
+ if (vsi->type == I40E_VSI_FDIR)
+ i40e_fdir_filter_restore(vsi);
i40e_service_event_schedule(pf);
return 0;