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: 2209c3e2c2 ("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>
This commit is contained in:
David Hunt 2017-07-24 09:48:44 +01:00 committed by Ferruh Yigit
parent ef09a7fc76
commit 935bceb9ba

View File

@ -9260,16 +9260,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;
}