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

Message ID 1500886124-19379-1-git-send-email-david.hunt@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers

Checks

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

Commit Message

Hunt, David July 24, 2017, 8:48 a.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.

Fixes: 2209c3e2c275 ("net/i40e: avoid PCI probing failure when using bogus SFP")

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 27, 2017, 12:28 a.m. UTC | #1
> -----Original Message-----
> From: Hunt, David
> Sent: Monday, July 24, 2017 4:49 PM
> To: dev@dpdk.org
> Cc: Wu, Jingjing <jingjing.wu@intel.com>; stable@dpdk.org; Hunt, David
> <david.hunt@intel.com>
> Subject: [PATCH v2] 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.
> 
> Fixes: 2209c3e2c275 ("net/i40e: avoid PCI probing failure when using bogus
> SFP")
> 
> Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
  
Ferruh Yigit July 31, 2017, 12:41 p.m. UTC | #2
On 7/27/2017 1:28 AM, Wu, Jingjing wrote:
> 
> 
>> -----Original Message-----
>> From: Hunt, David
>> Sent: Monday, July 24, 2017 4:49 PM
>> To: dev@dpdk.org
>> Cc: Wu, Jingjing <jingjing.wu@intel.com>; stable@dpdk.org; Hunt, David
>> <david.hunt@intel.com>
>> Subject: [PATCH v2] 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.
>>
>> Fixes: 2209c3e2c275 ("net/i40e: avoid PCI probing failure when using bogus
>> SFP")
>>
>> Signed-off-by: David Hunt <david.hunt@intel.com>
> Acked-by: Jingjing Wu <jingjing.wu@intel.com>

Applied to dpdk-next-net/master, thanks.
  

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;
 }