Hi, Yuying

> -----Original Message-----
> From: Zhang, Yuying <yuying.zh...@intel.com>
> Sent: 2022年5月17日 22:40
> To: Wu, WenxuanX <wenxuanx...@intel.com>; Xing, Beilei
> <beilei.x...@intel.com>; dev@dpdk.org
> Cc: Zhou, YidingX <yidingx.z...@intel.com>; sta...@dpdk.org
> Subject: RE: [PATCH v3] net/i40e: fix max frame size config at port level
> 
> Hi Wenxuan,
> 
> > -----Original Message-----
> > From: Wu, WenxuanX <wenxuanx...@intel.com>
> > Sent: Friday, May 13, 2022 3:21 PM
> > To: Xing, Beilei <beilei.x...@intel.com>; Zhang, Yuying
> > <yuying.zh...@intel.com>; dev@dpdk.org
> > Cc: Wu, WenxuanX <wenxuanx...@intel.com>; Zhou, YidingX
> > <yidingx.z...@intel.com>; sta...@dpdk.org
> > Subject: [PATCH v3] net/i40e: fix max frame size config at port level
> >
> > From: Wenxuan Wu <wenxuanx...@intel.com>
> >
> > Previously, max frame size can only be set when link is up, and the
> > wait time is 1 sec. Startup time of 10G_BASET longer than 1s would result in
> failure.
> >
> > Acctually, max frame size of media type I40E_MEDIA_TYPE_BASET can be
> > set regardless of link status.
> >
> > This patch omitted the link status check of 10G_MEDIA_TYPE_BASET.
> >
> > Fixes: a4ba77367923 ("net/i40e: enable maximum frame size at port
> > level")
> > Cc: sta...@dpdk.org
> >
> > Signed-off-by: Wenxuan Wu <wenxuanx...@intel.com>
> > ---
> >  drivers/net/i40e/i40e_ethdev.c | 24 ++++++++++++++----------
> >  1 file changed, 14 insertions(+), 10 deletions(-)
> >
> > diff --git a/drivers/net/i40e/i40e_ethdev.c
> > b/drivers/net/i40e/i40e_ethdev.c index 755786dc10..12d3cd9b0c 100644
> > --- a/drivers/net/i40e/i40e_ethdev.c
> > +++ b/drivers/net/i40e/i40e_ethdev.c
> > @@ -12102,17 +12102,21 @@ i40e_set_mac_max_frame(struct
> rte_eth_dev
> > *dev, uint16_t size)
> >     struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data-
> > >dev_private);
> >     uint32_t rep_cnt = MAX_REPEAT_TIME;
> >     struct rte_eth_link link;
> > -   enum i40e_status_code status;
> > -
> > -   do {
> > -           update_link_reg(hw, &link);
> > -           if (link.link_status)
> > -                   break;
> > -
> > -           rte_delay_ms(CHECK_INTERVAL);
> > -   } while (--rep_cnt);
> > +   enum i40e_status_code status =
> I40E_ERR_DEVICE_NOT_SUPPORTED;
> 
> There is no need to initialize status. You can reserve the original code.
> 
Yeah, will fix in next version.
> > +   bool can_be_set = true;
> > +
> > +   /* I40E_MEDIA_TYPE_BASET link up can be ignored */
> > +   if (hw->phy.media_type != I40E_MEDIA_TYPE_BASET) {
> > +           do {
> > +                   update_link_reg(hw, &link);
> > +                   if (link.link_status)
> > +                           break;
> > +                   rte_delay_ms(CHECK_INTERVAL);
> > +           } while (--rep_cnt);
> > +           can_be_set = link.link_status != 0;
> 
> can_be_set = !(! link.link_status);
Will fix  like this without parentheses in next version e.g.  !(! 
link.link_status) -> !!link.link_status
> 
> > +   }
> >
> > -   if (link.link_status) {
> > +   if (can_be_set) {
> >             status = i40e_aq_set_mac_config(hw, size, TRUE, 0, false,
> NULL);
> >             if (status != I40E_SUCCESS)
> >                     PMD_DRV_LOG(ERR, "Failed to set max frame size at
> port level");
> > --
> > 2.25.1
Thanks
Wenxuan

Reply via email to