]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
i40e: Fix a bug with VMDq RSS queue allocation
authorAnjali Singhai Jain <anjali.singhai@intel.com>
Fri, 23 Jun 2017 08:24:45 +0000 (04:24 -0400)
committerJack Vogel <jack.vogel@oracle.com>
Tue, 10 Oct 2017 21:15:25 +0000 (14:15 -0700)
The X722 pf flag setup should happen before the VMDq RSS queue count is
initialized for VMDq VSI to get the right number of queues for RSS in
case of X722 devices.

Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com>
Signed-off-by: Alice Michael <alice.michael@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Orabug: 26785018
(cherry picked from commit 5a433199bfde1b5360bf592184a2b89ce4ee2eda)
Signed-off-by: Jack Vogel <jack.vogel@oracle.com>
Reviewed-by: Kyle Fortin <kyle.fortin@oracle.com>
drivers/net/ethernet/intel/i40e/i40e_main.c

index 2cf263b2b7f2397a4d98ce8a9d5e1b295ab6559c..1c38ca1ce5cce48a0e92340e5e859cdf2034aa59 100644 (file)
@@ -8940,6 +8940,29 @@ static int i40e_sw_init(struct i40e_pf *pf)
                                 pf->hw.func_caps.fd_filters_best_effort;
        }
 
+       if (pf->hw.mac.type == I40E_MAC_X722) {
+               pf->flags |= I40E_FLAG_RSS_AQ_CAPABLE
+                            | I40E_FLAG_128_QP_RSS_CAPABLE
+                            | I40E_FLAG_HW_ATR_EVICT_CAPABLE
+                            | I40E_FLAG_OUTER_UDP_CSUM_CAPABLE
+                            | I40E_FLAG_WB_ON_ITR_CAPABLE
+                            | I40E_FLAG_MULTIPLE_TCP_UDP_RSS_PCTYPE
+                            | I40E_FLAG_NO_PCI_LINK_CHECK
+                            | I40E_FLAG_USE_SET_LLDP_MIB
+                            | I40E_FLAG_GENEVE_OFFLOAD_CAPABLE
+                            | I40E_FLAG_PTP_L4_CAPABLE
+                            | I40E_FLAG_WOL_MC_MAGIC_PKT_WAKE;
+       } else if ((pf->hw.aq.api_maj_ver > 1) ||
+                  ((pf->hw.aq.api_maj_ver == 1) &&
+                   (pf->hw.aq.api_min_ver > 4))) {
+               /* Supported in FW API version higher than 1.4 */
+               pf->flags |= I40E_FLAG_GENEVE_OFFLOAD_CAPABLE;
+       }
+
+       /* Enable HW ATR eviction if possible */
+       if (pf->flags & I40E_FLAG_HW_ATR_EVICT_CAPABLE)
+               pf->flags |= I40E_FLAG_HW_ATR_EVICT_ENABLED;
+
        if ((pf->hw.mac.type == I40E_MAC_XL710) &&
            (((pf->hw.aq.fw_maj_ver == 4) && (pf->hw.aq.fw_min_ver < 33)) ||
            (pf->hw.aq.fw_maj_ver < 4))) {
@@ -8985,29 +9008,6 @@ static int i40e_sw_init(struct i40e_pf *pf)
                                        I40E_MAX_VF_COUNT);
        }
 #endif /* CONFIG_PCI_IOV */
-       if (pf->hw.mac.type == I40E_MAC_X722) {
-               pf->flags |= I40E_FLAG_RSS_AQ_CAPABLE
-                            | I40E_FLAG_128_QP_RSS_CAPABLE
-                            | I40E_FLAG_HW_ATR_EVICT_CAPABLE
-                            | I40E_FLAG_OUTER_UDP_CSUM_CAPABLE
-                            | I40E_FLAG_WB_ON_ITR_CAPABLE
-                            | I40E_FLAG_MULTIPLE_TCP_UDP_RSS_PCTYPE
-                            | I40E_FLAG_NO_PCI_LINK_CHECK
-                            | I40E_FLAG_USE_SET_LLDP_MIB
-                            | I40E_FLAG_GENEVE_OFFLOAD_CAPABLE
-                            | I40E_FLAG_PTP_L4_CAPABLE
-                            | I40E_FLAG_WOL_MC_MAGIC_PKT_WAKE;
-       } else if ((pf->hw.aq.api_maj_ver > 1) ||
-                  ((pf->hw.aq.api_maj_ver == 1) &&
-                   (pf->hw.aq.api_min_ver > 4))) {
-               /* Supported in FW API version higher than 1.4 */
-               pf->flags |= I40E_FLAG_GENEVE_OFFLOAD_CAPABLE;
-       }
-
-       /* Enable HW ATR eviction if possible */
-       if (pf->flags & I40E_FLAG_HW_ATR_EVICT_CAPABLE)
-               pf->flags |= I40E_FLAG_HW_ATR_EVICT_ENABLED;
-
        pf->eeprom_version = 0xDEAD;
        pf->lan_veb = I40E_NO_VEB;
        pf->lan_vsi = I40E_NO_VSI;