> Subject: [PATCH v2 6/7] net/iavf: keep watchdog armed for the whole reset > window > > The device watchdog polls VFGEN_RSTAT to detect a VF reset and drives > the auto-reset recovery path. > It is disabled when a link-up event arrives, on the assumption that a > working link means no reset is in flight. > That assumption does not hold during recovery. > > Keep the watchdog armed while vf->in_reset_recovery is set, and enable > it on VIRTCHNL_EVENT_RESET_IMPENDING, so it stays armed from the PF > reset notification until recovery completes.
Is there an appropriate fixes tag that could be added to this commit? > > Signed-off-by: Anurag Mandal <[email protected]> > --- > drivers/net/intel/iavf/iavf_vchnl.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/intel/iavf/iavf_vchnl.c > b/drivers/net/intel/iavf/iavf_vchnl.c > index e04afe1d6a..3ceebce454 100644 > --- a/drivers/net/intel/iavf/iavf_vchnl.c > +++ b/drivers/net/intel/iavf/iavf_vchnl.c > @@ -260,7 +260,7 @@ iavf_handle_link_change_event(struct rte_eth_dev > *dev, > * (link is down or a VF reset is in progress); the watchdog drives > * auto-reset recovery, so it must remain armed in those cases. > */ > - if (vf->link_up && !vf->vf_reset) > + if (vf->link_up && !vf->vf_reset && !vf->in_reset_recovery) > iavf_dev_watchdog_disable(adapter); > else > iavf_dev_watchdog_enable(adapter); > @@ -574,6 +574,7 @@ iavf_handle_pf_event_msg(struct rte_eth_dev *dev, > uint8_t *msg, > if (!vf->vf_reset) { > vf->vf_reset = true; > iavf_set_no_poll(adapter, false); > + iavf_dev_watchdog_enable(adapter); Should the watchdog be enabled in iavf_read_msg_from_pf where the RESET_IMPENDING message is handled also? > if (adapter->devargs.no_poll_on_link_down) > iavf_dev_tx_drain(dev); > iavf_dev_event_post(dev, > RTE_ETH_EVENT_INTR_RESET, > -- > 2.34.1

