[dpdk-stable] patch 'net/i40e: set speed to undefined for default case' has been queued to LTS release 18.11.6

Kevin Traynor ktraynor at redhat.com
Tue Dec 3 19:26:30 CET 2019


Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/10/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/dfcebf5c28b8b71ee5d7f393a6cbe27acbeebc9d

Thanks.

Kevin.

---
>From dfcebf5c28b8b71ee5d7f393a6cbe27acbeebc9d Mon Sep 17 00:00:00 2001
From: Laurent Hardy <laurent.hardy at 6wind.com>
Date: Wed, 11 Sep 2019 18:02:51 +0200
Subject: [PATCH] net/i40e: set speed to undefined for default case

[ upstream commit 3c8c0b68b590fe8cd7e4a4d18b997eddd5b8b286 ]

During PF/VF link update, a default speed value of 100M will be set
if get_link_info has failed or speed is unknown.

Consequently if PF is put in no-carrier state, VFs will switch to
"in carrier" state due to a link up + a link speed set to 100M
(default value if no speed detected).

To be consistent with linux drivers on which PF and VFs are in
same carrier state, sets default speed to undefined (instead of 100M)
and updates a link status of VF only if link is up and speed is
different from undefined.

Fixes: 4861cde46116 ("i40e: new poll mode driver")

Signed-off-by: Laurent Hardy <laurent.hardy at 6wind.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye at intel.com>
Acked-by: Qi Zhang <qi.z.zhang at intel.com>
---
 drivers/net/i40e/i40e_ethdev.c    | 4 ++--
 drivers/net/i40e/i40e_ethdev_vf.c | 8 +++++---
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index b1b145f32..040bedfad 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -2743,5 +2743,5 @@ update_link_aq(struct i40e_hw *hw, struct rte_eth_link *link,
 						&link_status, NULL);
 		if (unlikely(status != I40E_SUCCESS)) {
-			link->link_speed = ETH_SPEED_NUM_100M;
+			link->link_speed = ETH_SPEED_NUM_NONE;
 			link->link_duplex = ETH_LINK_FULL_DUPLEX;
 			PMD_DRV_LOG(ERR, "Failed to get link info");
@@ -2777,5 +2777,5 @@ update_link_aq(struct i40e_hw *hw, struct rte_eth_link *link,
 		break;
 	default:
-		link->link_speed = ETH_SPEED_NUM_100M;
+		link->link_speed = ETH_SPEED_NUM_NONE;
 		break;
 	}
diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
index 4f6a1975f..16d67b593 100644
--- a/drivers/net/i40e/i40e_ethdev_vf.c
+++ b/drivers/net/i40e/i40e_ethdev_vf.c
@@ -2074,11 +2074,13 @@ i40evf_dev_link_update(struct rte_eth_dev *dev,
 		break;
 	default:
-		new_link.link_speed = ETH_SPEED_NUM_100M;
+		new_link.link_speed = ETH_SPEED_NUM_NONE;
 		break;
 	}
 	/* full duplex only */
 	new_link.link_duplex = ETH_LINK_FULL_DUPLEX;
-	new_link.link_status = vf->link_up ? ETH_LINK_UP :
-					     ETH_LINK_DOWN;
+	new_link.link_status = vf->link_up &&
+				new_link.link_speed != ETH_SPEED_NUM_NONE
+				? ETH_LINK_UP
+				: ETH_LINK_DOWN;
 	new_link.link_autoneg =
 		!(dev->data->dev_conf.link_speeds & ETH_LINK_SPEED_FIXED);
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-03 17:29:53.050651247 +0000
+++ 0021-net-i40e-set-speed-to-undefined-for-default-case.patch	2019-12-03 17:29:51.738750203 +0000
@@ -1 +1 @@
-From 3c8c0b68b590fe8cd7e4a4d18b997eddd5b8b286 Mon Sep 17 00:00:00 2001
+From dfcebf5c28b8b71ee5d7f393a6cbe27acbeebc9d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3c8c0b68b590fe8cd7e4a4d18b997eddd5b8b286 ]
+
@@ -19 +20,0 @@
-Cc: stable at dpdk.org
@@ -30 +31 @@
-index c145e6407..32d6dc117 100644
+index b1b145f32..040bedfad 100644
@@ -33 +34 @@
-@@ -2833,5 +2833,5 @@ update_link_aq(struct i40e_hw *hw, struct rte_eth_link *link,
+@@ -2743,5 +2743,5 @@ update_link_aq(struct i40e_hw *hw, struct rte_eth_link *link,
@@ -40 +41 @@
-@@ -2867,5 +2867,5 @@ update_link_aq(struct i40e_hw *hw, struct rte_eth_link *link,
+@@ -2777,5 +2777,5 @@ update_link_aq(struct i40e_hw *hw, struct rte_eth_link *link,
@@ -48 +49 @@
-index 7ffb111b8..5dba0928b 100644
+index 4f6a1975f..16d67b593 100644
@@ -51 +52 @@
-@@ -2142,11 +2142,13 @@ i40evf_dev_link_update(struct rte_eth_dev *dev,
+@@ -2074,11 +2074,13 @@ i40evf_dev_link_update(struct rte_eth_dev *dev,



More information about the stable mailing list