From 3df3a4cb8d067a34277111cb600dc014d09d8aec Mon Sep 17 00:00:00 2001 From: WangYuli Date: Sun, 24 Nov 2024 14:12:02 +0800 Subject: [PATCH 1/4] eth: mucse: rnpgbe: Fix out of array 'priv' Follow error with clang-19: drivers/net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.c:517:18: error: array index 0 is past the end of the array (that has type 'char[0]', cast to 'int *') [-Werror,-Warray-bounds] 517 | ret = ((int *)(cookie->priv))[0]; | ^ ~ drivers/net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.h:29:2: note: array 'priv' declared here 29 | char priv[0]; | ^ 1 error generated. To fix this, define a MAX_PRIV_LEN just like what 'struct mbx_req_cookie' at 'rnp_type.h' does. Signed-off-by: WangYuli --- drivers/net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.h b/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.h index 7d115fe2aeaa2..1059d0c11954e 100644 --- a/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.h +++ b/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.h @@ -26,7 +26,8 @@ struct mbx_req_cookie { int done; int priv_len; - char priv[0]; +#define MAX_PRIV_LEN 64 + char priv[MAX_PRIV_LEN]; }; enum GENERIC_CMD { From 0c294b4025ca788d603a9b33bd63d50319a620d9 Mon Sep 17 00:00:00 2001 From: WangYuli Date: Thu, 21 Nov 2024 13:54:19 +0800 Subject: [PATCH 2/4] net: mucse: donot assigning value of variable of type to itself Fix follow compile errors with clang-19: drivers/net/ethernet/mucse/rnpgbe/rnpgbe_chip.c:3394:10: error: explicitly assigning value of variable of type 'int' to itself [-Werror,-Wself-assign] 3394 | voltage = voltage; | ~~~~~~~ ^ ~~~~~~~ 1 error generated. drivers/net/ethernet/mucse/rnp/rnp_n10.c:4208:10: error: explicitly assigning value of variable of type 'int' to itself [-Werror,-Wself-assign] 4208 | voltage = voltage; | ~~~~~~~ ^ ~~~~~~~ 1 error generated. Signed-off-by: WangYuli --- drivers/net/ethernet/mucse/rnp/rnp_n10.c | 1 - drivers/net/ethernet/mucse/rnpgbe/rnpgbe_chip.c | 1 - 2 files changed, 2 deletions(-) diff --git a/drivers/net/ethernet/mucse/rnp/rnp_n10.c b/drivers/net/ethernet/mucse/rnp/rnp_n10.c index 1cc0ba9836f1e..57f7e449e96cb 100644 --- a/drivers/net/ethernet/mucse/rnp/rnp_n10.c +++ b/drivers/net/ethernet/mucse/rnp/rnp_n10.c @@ -4205,7 +4205,6 @@ static s32 rnp_get_thermal_sensor_data_hw_ops_n10(struct rnp_hw *hw) int voltage = 0; struct rnp_thermal_sensor_data *data = &hw->thermal_sensor_data; - voltage = voltage; data->sensor[0].temp = rnp_mbx_get_temp(hw, &voltage); return 0; diff --git a/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_chip.c b/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_chip.c index eb87d01f05796..e0795ba6166b6 100644 --- a/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_chip.c +++ b/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_chip.c @@ -3391,7 +3391,6 @@ static s32 rnpgbe_get_thermal_sensor_data_hw_ops_n500(struct rnpgbe_hw *hw) int voltage = 0; struct rnpgbe_thermal_sensor_data *data = &hw->thermal_sensor_data; - voltage = voltage; data->sensor[0].temp = rnpgbe_mbx_get_temp(hw, &voltage); return 0; From 461ad608a0ae4a412502346683c546b9ae29f483 Mon Sep 17 00:00:00 2001 From: WangYuli Date: Fri, 22 Nov 2024 12:44:18 +0800 Subject: [PATCH 3/4] eth: mucse: rnp: remove extraneous parentheses around the comparison Fix follow errors with clang-19: drivers/net/ethernet/mucse/rnp/rnp_main.c:6165:24: error: equality comparison with extraneous parentheses [-Werror,-Wparentheses-equality] 6165 | } else if ((protocol == htons(ETH_P_8021Q))) { | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/mucse/rnp/rnp_main.c:6165:24: note: remove extraneous parentheses around the comparison to silence this warning 6165 | } else if ((protocol == htons(ETH_P_8021Q))) { | ~ ^ ~ drivers/net/ethernet/mucse/rnp/rnp_main.c:6165:24: note: use '=' to turn this equality comparison into an assignment 6165 | } else if ((protocol == htons(ETH_P_8021Q))) { | ^~ | = 1 error generated. drivers/net/ethernet/mucse/rnp/rnp_n10.c:3329:30: error: equality comparison with extraneous parentheses [-Werror,-Wparentheses-equality] 3329 | if ((hw->force_speed_stat == | ~~~~~~~~~~~~~~~~~~~~~^~ 3330 | FORCE_SPEED_STAT_DISABLED)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/mucse/rnp/rnp_n10.c:3329:30: note: remove extraneous parentheses around the comparison to silence this warning 3329 | if ((hw->force_speed_stat == | ~ ^ 3330 | FORCE_SPEED_STAT_DISABLED)) { | ~ drivers/net/ethernet/mucse/rnp/rnp_n10.c:3329:30: note: use '=' to turn this equality comparison into an assignment 3329 | if ((hw->force_speed_stat == | ^~ | = 1 error generated. Signed-off-by: WangYuli --- drivers/net/ethernet/mucse/rnp/rnp_main.c | 2 +- drivers/net/ethernet/mucse/rnp/rnp_n10.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/mucse/rnp/rnp_main.c b/drivers/net/ethernet/mucse/rnp/rnp_main.c index 59d7873bf0176..db7927f70ceac 100644 --- a/drivers/net/ethernet/mucse/rnp/rnp_main.c +++ b/drivers/net/ethernet/mucse/rnp/rnp_main.c @@ -6162,7 +6162,7 @@ netdev_tx_t rnp_xmit_frame_ring(struct sk_buff *skb, * protocol and store the tag */ /* veb only use ctags */ - } else if ((protocol == htons(ETH_P_8021Q))) { + } else if (protocol == htons(ETH_P_8021Q)) { struct vlan_hdr *vhdr, _vhdr; vhdr = skb_header_pointer(skb, ETH_HLEN, sizeof(_vhdr), diff --git a/drivers/net/ethernet/mucse/rnp/rnp_n10.c b/drivers/net/ethernet/mucse/rnp/rnp_n10.c index 57f7e449e96cb..3d626bc0f6553 100644 --- a/drivers/net/ethernet/mucse/rnp/rnp_n10.c +++ b/drivers/net/ethernet/mucse/rnp/rnp_n10.c @@ -3326,8 +3326,8 @@ static int rnp10_set_link_ksettings(struct net_device *netdev, if (advertising_link_speed) { hw->phy.autoneg_advertised = advertising_link_speed; } else { - if ((hw->force_speed_stat == - FORCE_SPEED_STAT_DISABLED)) { + if (hw->force_speed_stat == + FORCE_SPEED_STAT_DISABLED) { netdev_info(netdev, "advertising_link_speed is 0\n"); err = -EINVAL; From a75c93b61e9bdd0b878b1c0d733caa7f4eeba4d6 Mon Sep 17 00:00:00 2001 From: WangYuli Date: Fri, 22 Nov 2024 13:27:28 +0800 Subject: [PATCH 4/4] eth: mucse: rnpgbevf: initialize the variable 'advertising' Fix follow error with clang-19: drivers/net/ethernet/mucse/rnpgbevf/rnpgbevf_ethtool.c:143:3: error: variable 'advertising' is uninitialized when used here [-Werror,-Wuninitialized] 143 | advertising |= ADVERTISED_FIBRE | ADVERTISED_1000baseKX_Full; | ^~~~~~~~~~~ drivers/net/ethernet/mucse/rnpgbevf/rnpgbevf_ethtool.c:131:28: note: initialize the variable 'advertising' to silence this warning 131 | u32 supported, advertising; | ^ | = 0 1 error generated. Signed-off-by: WangYuli --- drivers/net/ethernet/mucse/rnpgbevf/rnpgbevf_ethtool.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mucse/rnpgbevf/rnpgbevf_ethtool.c b/drivers/net/ethernet/mucse/rnpgbevf/rnpgbevf_ethtool.c index 4e32d557a33fa..4848bbbb77359 100644 --- a/drivers/net/ethernet/mucse/rnpgbevf/rnpgbevf_ethtool.c +++ b/drivers/net/ethernet/mucse/rnpgbevf/rnpgbevf_ethtool.c @@ -128,7 +128,8 @@ static int rnpgbevf_get_link_ksettings(struct net_device *netdev, struct rnpgbevf_hw *hw = &adapter->hw; bool autoneg = false; bool link_up; - u32 supported, advertising; + u32 supported; + u32 advertising = 0; u32 link_speed = 0; ethtool_convert_link_mode_to_legacy_u32(&supported,