i40e: Turn flow director off in MFP mode
authorCatherine Sullivan <catherine.sullivan@intel.com>
Wed, 18 Dec 2013 13:46:03 +0000 (13:46 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 9 Jan 2014 11:35:48 +0000 (03:35 -0800)
The driver needs to set the MFP flag earlier in i40e_sw_init
and then can use that flag to decide if other hardware
work-arouds are required.

Change-ID: Ib17ad1e3485f57b28845ab4722294a99f203bd48
Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_main.c

index 63ea7036767f6a04ad1aaa2dda25a8e7bb8d8e26..1b792ee592d06383bde01901b9fdba68e8601e2b 100644 (file)
@@ -4658,7 +4658,7 @@ static int i40e_get_capabilities(struct i40e_pf *pf)
                }
        } while (err);
 
-       if (pf->hw.revision_id == 0 && pf->hw.func_caps.npar_enable) {
+       if (pf->hw.revision_id == 0 && (pf->flags & I40E_FLAG_MFP_ENABLED)) {
                pf->hw.func_caps.num_msix_vectors += 1;
                pf->hw.func_caps.num_tx_qp =
                        min_t(int, pf->hw.func_caps.num_tx_qp,
@@ -5827,6 +5827,12 @@ static int i40e_sw_init(struct i40e_pf *pf)
                pf->rss_size = 1;
        }
 
+       /* MFP mode enabled */
+       if (pf->hw.func_caps.npar_enable || pf->hw.func_caps.mfp_mode_1) {
+               pf->flags |= I40E_FLAG_MFP_ENABLED;
+               dev_info(&pf->pdev->dev, "MFP mode Enabled\n");
+       }
+
        if (pf->hw.func_caps.dcb)
                pf->num_tc_qps = I40E_DEFAULT_QUEUES_PER_TC;
        else
@@ -5855,12 +5861,6 @@ static int i40e_sw_init(struct i40e_pf *pf)
                pf->num_vmdq_qps = I40E_DEFAULT_QUEUES_PER_VMDQ;
        }
 
-       /* MFP mode enabled */
-       if (pf->hw.func_caps.npar_enable || pf->hw.func_caps.mfp_mode_1) {
-               pf->flags |= I40E_FLAG_MFP_ENABLED;
-               dev_info(&pf->pdev->dev, "MFP mode Enabled\n");
-       }
-
 #ifdef CONFIG_PCI_IOV
        if (pf->hw.func_caps.num_vfs) {
                pf->num_vf_qps = I40E_DEFAULT_QUEUES_PER_VF;