Skip to contentSkip to conversation

i40e: fix incorrect assignment of I40E_FLAG_HW_ATR_EVICT_CAPABLE

PATCH New Jacob Keller 2 participants 2 messages May 4, 2017

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 i40e: fix incorrect assignment of I40E_FLAG_HW_ATR_EVICT_CAPABLE

When attempting to setup I40E_FLAG_HW_ATR_EVICT_ENABLED, we accidentally broke all PF flags because we directly assigned the value of I40E_FLAG_HW_ATR_EVICT_CAPABLE.

This is incorrect, but the obvious fix of changing the assignment to an |= is not correct either, since I40E_FLAG_HW_ATR_EVICT_CAPABLE is already set in the feature list.

Instead, we intended to set the I40E_FLAG_HW_ATR_EVICT_ENABLED flag, but only if I40E_FLAG_HW_ATR_EVICT_CAPABLE had already been set.

Without this patch we will have many problems including disabling MSI-X support, and not having HW ATR eviction actually enabled.

Fixes 47994c119a36 ("i40e: remove hw_disabled_flags in favor of using separate flag bits", 2017-04-19)
---
 drivers/net/ethernet/intel/i40e/i40e_main.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

The fix provided by Sridhar fixes the major problem but would result in us not actually having HW_ATR_EVICT_ENABLED properly set. The whole process of this series got messed up when we sent upstream, and I am working on sorting it out.

drivers/net/ethernet/intel/i40e/i40e_main.c +4 -3
index e4eb97832413..6200a9a55dc2 100644
@@ -8822,11 +8822,12 @@ static int i40e_sw_init(struct i40e_pf *pf)
 		    (pf->hw.aq.api_min_ver > 4))) {
 		/* Supported in FW API version higher than 1.4 */
 		pf->flags |= I40E_FLAG_GENEVE_OFFLOAD_CAPABLE;
-		pf->flags = I40E_FLAG_HW_ATR_EVICT_CAPABLE;
-	} else {
-		pf->flags = I40E_FLAG_HW_ATR_EVICT_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;
Signature · 1 line
2.13.0.rc0.317.gcc792a6cad5a
#1 lore raw

PATCH 1/1 i40e: fix incorrect assignment of I40E_FLAG_HW_ATR_EVICT_CAPABLE

Quoted 19 lines · Jacob Keller

When attempting to setup I40E_FLAG_HW_ATR_EVICT_ENABLED, we accidentally
broke all PF flags because we directly assigned the value of I40E_FLAG_HW_ATR_EVICT_CAPABLE.

This is incorrect, but the obvious fix of changing the assignment to an

Quoted 1 line

= is not correct either, since I40E_FLAG_HW_ATR_EVICT_CAPABLE is

already set in the feature list.

Instead, we intended to set the I40E_FLAG_HW_ATR_EVICT_ENABLED flag, but
only if I40E_FLAG_HW_ATR_EVICT_CAPABLE had already been set.

Without this patch we will have many problems including disabling MSI-X
support, and not having HW ATR eviction actually enabled.

Quoted 6 lines
Fixes 47994c119a36 ("i40e: remove hw_disabled_flags in favor of

using separate flag bits", 2017-04-19)

---
?drivers/net/ethernet/intel/i40e/i40e_main.c | 7 ++++--- ?1 file changed, 4 insertions(+), 3 deletions(-)

Grr... Patchwork is not picking patches up. I have sent an email to Jeremy Kerr (patchwork admin for ozlabs.org).

I will apply Jake's updated version of the patch to my net-queue and next-queue trees, but plan to push to Dave net tree.

Alex- can I assume your ACK still stands for this updated change?

Andrew- This has high priority and I would like to see testing
completed in the next day or so, please.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20170504/9a8231d6/attachment.asc>