[dpdk-dev] [PATCH v2] net/i40e: fix link_state update for i40e_ethdev_vf drv

Zhang, Helin helin.zhang at intel.com
Tue Mar 27 18:29:40 CEST 2018



> -----Original Message-----
> From: Tushar Mulkar [mailto:tmulkar at sandvine.com]
> Sent: Wednesday, February 14, 2018 8:00 PM
> To: Zhang, Helin; dev at dpdk.org
> Cc: Xing, Beilei; Zhang, Qi Z
> Subject: [PATCH v2] net/i40e: fix link_state update for i40e_ethdev_vf drv
> 
> The check for bool was accounting unwanted bits in the calulation of truth
> value. In dpdk unsingned int is typedefed to bool but all it cares about is Least
> Significant Bit. But in calculation of condition expression the bits other than
> LSB was used which doesn't make sense. Some time these bits has values
> which results in to incorrect expression results. To fix this we just need to
> account LSB form the bool value . This can be easily done by anding the value
> with true.
> 
> Signed-off-by: Tushar Mulkar <tmulkar at sandvine.com>
> ---
>  drivers/net/i40e/i40e_ethdev_vf.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/i40e/i40e_ethdev_vf.c
> b/drivers/net/i40e/i40e_ethdev_vf.c
> index b96d77a0c..d23dff044 100644
> --- a/drivers/net/i40e/i40e_ethdev_vf.c
> +++ b/drivers/net/i40e/i40e_ethdev_vf.c
> @@ -2095,8 +2095,8 @@ i40evf_dev_link_update(struct rte_eth_dev *dev,
>  	}
>  	/* full duplex only */
>  	new_link.link_duplex = ETH_LINK_FULL_DUPLEX;
> -	new_link.link_status = vf->link_up ? ETH_LINK_UP :
> -					     ETH_LINK_DOWN;
> +	new_link.link_status = (vf->link_up & true) ?
> +                            ETH_LINK_UP : ETH_LINK_DOWN;
It is a bit strange to do bit manipunation on a bool type of value.
Do you see any wrong case with that variable? If yes, I'd suggest correct that one,
rather than doing like this.

Thanks,
Helin

>  	new_link.link_autoneg =
>  		dev->data->dev_conf.link_speeds & ETH_LINK_SPEED_FIXED;
> 
> --
> 2.11.0



More information about the dev mailing list