[dpdk-dev,v1] net/i40e: fix sync phy type by adding retry

Message ID 1500648081-210705-1-git-send-email-david.hunt@intel.com (mailing list archive)
State Superseded, archived
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Hunt, David July 21, 2017, 2:41 p.m. UTC
  Some phy's take longer than others to come up. Add a retry to give
more phy's a chance to come up before returning an error.

Signed-off-by: David Hunt <david.hunt@intel.com>
---
 drivers/net/i40e/i40e_ethdev.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
  

Comments

Jingjing Wu July 24, 2017, 1:55 a.m. UTC | #1
> -----Original Message-----
> From: Hunt, David
> Sent: Friday, July 21, 2017 10:41 PM
> To: dev@dpdk.org
> Cc: Wu, Jingjing <jingjing.wu@intel.com>; Hunt, David <david.hunt@intel.com>
> Subject: [PATCH v1] net/i40e: fix sync phy type by adding retry
> 
> Some phy's take longer than others to come up. Add a retry to give more phy's
> a chance to come up before returning an error.
> 
> Signed-off-by: David Hunt <david.hunt@intel.com>

Patch looks fine, but you missed the Fixes line and it's better to Cc stable@dpdk.org

Thanks
Jingjing
  

Patch

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 97a73e1..8c39eb7 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -9248,16 +9248,22 @@  i40e_dev_sync_phy_type(struct i40e_hw *hw)
 	enum i40e_status_code status;
 	struct i40e_aq_get_phy_abilities_resp phy_ab;
 	int ret = -ENOTSUP;
+	int retries = 0;
 
 	status = i40e_aq_get_phy_capabilities(hw, false, true, &phy_ab,
 					      NULL);
 
-	if (status) {
+	while (status) {
 		PMD_INIT_LOG(WARNING, "Failed to sync phy type: status=%d",
 			status);
-		return ret;
+		retries++;
+		rte_delay_us(100000);
+		if  (retries < 5)
+			status = i40e_aq_get_phy_capabilities(hw, false,
+					true, &phy_ab, NULL);
+		else
+			return ret;
 	}
-
 	return 0;
 }