> -----Original Message----- > From: Loftus, Ciara <[email protected]> > Sent: 09 June 2026 15:32 > To: Mandal, Anurag <[email protected]>; [email protected] > Cc: Richardson, Bruce <[email protected]>; Medvedkin, Vladimir > <[email protected]>; [email protected] > Subject: RE: [PATCH] net/iavf: fix to consolidate link change event handling > > > Subject: [PATCH] net/iavf: fix to consolidate link change event > > handling > > > > Handled link-change events through a common static function that reads > > the correct advanced & legacy link fields properly and updates > > no-poll/watchdog/LSC state consistently. > > > > Fixes: 5e03e316c753 ("net/iavf: handle virtchnl event message without > > interrupt") > > Fixes: 48de41ca11f0 ("net/avf: enable link status update") > > Cc: [email protected] > > > > Signed-off-by: Anurag Mandal <[email protected]> > > --- > > drivers/net/intel/iavf/iavf_vchnl.c | 133 > > +++++++++++++++++----------- > > 1 file changed, 81 insertions(+), 52 deletions(-) > > > > diff --git a/drivers/net/intel/iavf/iavf_vchnl.c > > b/drivers/net/intel/iavf/iavf_vchnl.c > > index 94ccfb5d6e..6454632541 100644 > > --- a/drivers/net/intel/iavf/iavf_vchnl.c > > +++ b/drivers/net/intel/iavf/iavf_vchnl.c > > @@ -216,6 +216,75 @@ iavf_convert_link_speed(enum virtchnl_link_speed > > virt_link_speed) > > return speed; > > } > > > > +/* > > + * iavf_handle_link_change_event: common handler for VIRTCHNL link > > change events > > + * > > + * @dev: pointer to rte_eth_dev for this VF > > + * @vpe: pointer to the virtchnl_pf_event payload received from the > > +PF > > + * > > + * Handle PF link-change event: decode adv/legacy link info, update > > +VF > > + * link state, sync no-poll/watchdog behavior & notify app via LSC event. > > + */ > > +static void > > +iavf_handle_link_change_event(struct rte_eth_dev *dev, > > + struct virtchnl_pf_event *vpe) { > > + struct iavf_adapter *adapter; > > + struct iavf_info *vf; > > + bool adv_link_speed; > > + > > + if (dev == NULL || dev->data == NULL || > > + dev->data->dev_private == NULL || vpe == NULL) { > > + PMD_DRV_LOG(ERR, "Invalid device pointer in link change > > handler"); > > + return; > > + } > > Thanks for splitting this out into a standalone patch. > I'm not sure if all of the above NULL checking is necessary. Especially vpe == > NULL considering you've checked that for NULL in both iavf_read_msg_from_pf > and iavf_handle_pf_event_msg before entering this function. It's recommended > to avoid overly defensive checks that can never trigger so I suggest taking a > look > at this again. Other than that the changes looks good to me.
Hi Ciara, Thanks for the review. Initially I also did not add. Then I added it as per suggestions from ai-code-review run by DPDK. Funny thing is now, it is saying " overly defensive checks". So not sure, which suggestion of ai-cdoe-review to follow. Please guide. Will act accordingly. Thanks, Anuarg > > > + > > + adapter = IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data- > > >dev_private); > > + vf = &adapter->vf; > > + > > + adv_link_speed = (vf->vf_res != NULL) && > > + ((vf->vf_res->vf_cap_flags & > > VIRTCHNL_VF_CAP_ADV_LINK_SPEED) != 0); > > +

