I agree. Maybe this is the better solution Zhang, Qi Z 于2022年12月13日周二 09:50写道: > > > > -----Original Message----- > > From: Shuang Han > > Sent: Wednesday, November 23, 2022 8:42 PM > > To: dev@dpdk.org > > Cc: Yang, Qiming ; Zhang, Qi Z > > ; Shuang Han > > Subject: [PATCH] net/ice: fix link status error when dev start > > > > 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 > > --- > > 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); > > This looks like a workaround, I think we may need some lock to prevent > ice_link_update be re-entered from different thread at same time. > > > > > return 0; > > } > > -- > > 1.8.3.1 > > -- Best regards Han Shuang