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

Message ID B100BEBE3931D74C91B0DFE67C1055F9035BC999@blr-exchp-2.sandvine.com (mailing list archive)
State Changes Requested, archived
Delegated to: Helin Zhang
Headers

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation fail Compilation issues

Commit Message

Tushar Mulkar Jan. 17, 2018, 8:53 a.m. UTC
  The check for bool was accounting unwanted bits in the calulation of truth value

Signed-off-by: Tushar Mulkar <tmulkar@sandvine.com>
---
 drivers/net/i40e/i40e_ethdev_vf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Zhang, Helin Jan. 17, 2018, 3:03 p.m. UTC | #1
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Tushar Mulkar
> Sent: Wednesday, January 17, 2018 4:53 PM
> To: dev@dpdk.org
> Cc: Xing, Beilei; Zhang, Qi Z; Tushar Mulkar
> Subject: [dpdk-dev] [PATCH] 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
Could you help to add a bit more about the problem statement?
> 
> Signed-off-by: Tushar Mulkar <tmulkar@sandvine.com>
> ---
>  drivers/net/i40e/i40e_ethdev_vf.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/i40e/i40e_ethdev_vf.c
> b/drivers/net/i40e/i40e_ethdev_vf.c
> index b96d77a0c..9c14ea278 100644
> --- a/drivers/net/i40e/i40e_ethdev_vf.c
> +++ b/drivers/net/i40e/i40e_ethdev_vf.c
> @@ -2095,7 +2095,7 @@ 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 :
> +	new_link.link_status = (vf->link_up & true) ? ETH_LINK_UP :
>  					     ETH_LINK_DOWN;
Basically 'link_up' is in bool type, why adding bit manipulation on it?
But thanks for your patches!

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

Patch

diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
index b96d77a0c..9c14ea278 100644
--- a/drivers/net/i40e/i40e_ethdev_vf.c
+++ b/drivers/net/i40e/i40e_ethdev_vf.c
@@ -2095,7 +2095,7 @@  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 :
+	new_link.link_status = (vf->link_up & true) ? ETH_LINK_UP :
 					     ETH_LINK_DOWN;
 	new_link.link_autoneg =
 		dev->data->dev_conf.link_speeds & ETH_LINK_SPEED_FIXED;