ice_link_update get port link status and wait for one second when dev start.
If the device need almost one second for link up,
ice_link_update will enter the last rte_delay_ms(CHECK_INTERVAL) with link down,
in the meantime link interrupt raised,
the interrupt handler update dev->data->dev_link to up.
After a while the rte_delay_ms(CHECK_INTERVAL) finished
and update dev->data->dev_link to down.

Signed-off-by: Shuang Han <hanshuan...@gmail.com>
---
 drivers/net/ice/ice_ethdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index 0bc739d..316ba5a 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -4013,9 +4013,9 @@ static int ice_init_rss(struct ice_pf *pf)
                              RTE_ETH_LINK_SPEED_FIXED);
 
 out:
-       ice_atomic_write_link_status(dev, &link);
        if (link.link_status == old.link_status)
                return -1;
+       ice_atomic_write_link_status(dev, &link);
 
        return 0;
 }
-- 
1.8.3.1

Reply via email to