[dpdk-dev] net/i40e: fix shifts of 32-bit value

Message ID 1527061606-10172-1-git-send-email-beilei.xing@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Qi Zhang
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Xing, Beilei May 23, 2018, 7:46 a.m. UTC
  Cppcheck reports following error,
(error) Shifting 32-bit value by 36 bits is undefined behaviour

According to datasheet, there's PHY type and PHY type extension
in setting PHY config command, should exclude PHY type extension
when setting PHY type.

Fixes: 1bb8f661168d ("net/i40e: fix link down and negotiation")

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
---
 drivers/net/i40e/i40e_ethdev.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Ferruh Yigit May 23, 2018, 3:49 p.m. UTC | #1
On 5/23/2018 8:46 AM, Beilei Xing wrote:
> Cppcheck reports following error,
> (error) Shifting 32-bit value by 36 bits is undefined behaviour
> 
> According to datasheet, there's PHY type and PHY type extension
> in setting PHY config command, should exclude PHY type extension
> when setting PHY type.
> 
> Fixes: 1bb8f661168d ("net/i40e: fix link down and negotiation")
> 
> Signed-off-by: Beilei Xing <beilei.xing@intel.com>

Hi Beilei,

This patc was late for rc5, it will be considered for next release.

Thanks,
ferruh
  
Qi Zhang June 21, 2018, 2:19 p.m. UTC | #2
> -----Original Message-----
> From: Xing, Beilei
> Sent: Wednesday, May 23, 2018 3:47 PM
> To: Zhang, Qi Z <qi.z.zhang@intel.com>
> Cc: dev@dpdk.org; Guo, Jia <jia.guo@intel.com>
> Subject: [PATCH] net/i40e: fix shifts of 32-bit value
> 
> Cppcheck reports following error,
> (error) Shifting 32-bit value by 36 bits is undefined behaviour
> 
> According to datasheet, there's PHY type and PHY type extension in setting PHY
> config command, should exclude PHY type extension when setting PHY type.
> 
> Fixes: 1bb8f661168d ("net/i40e: fix link down and negotiation")
> 
> Signed-off-by: Beilei Xing <beilei.xing@intel.com>

Acked-by: Qi Zhang <qi.z.zhang@intel.com>

Applied to dpdk-next-net-intel

Thanks!
Qi
  

Patch

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 7d4f1c9..9792205 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -2065,8 +2065,8 @@  i40e_phy_conf_link(struct i40e_hw *hw,
 
 
 
-	/* To enable link, phy_type mask needs to include each type */
-	for (cnt = I40E_PHY_TYPE_SGMII; cnt < I40E_PHY_TYPE_MAX; cnt++)
+	/* PHY type mask needs to include each type except PHY type extension */
+	for (cnt = I40E_PHY_TYPE_SGMII; cnt < I40E_PHY_TYPE_25GBASE_KR; cnt++)
 		phy_type_mask |= 1 << cnt;
 
 	/* use get_phy_abilities_resp value for the rest */