lkml.org 
[lkml]   [2022]   [Sep]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectRE: [PATCH net-next v2] net/mlx5e: Ensure macsec_rule is always initiailized in macsec_fs_{r,t}x_add_rule()
Date


>-----Original Message-----
>From: Nathan Chancellor <nathan@kernel.org>
>Sent: Sunday, 11 September 2022 11:58
>To: Saeed Mahameed <saeedm@nvidia.com>; Leon Romanovsky
><leon@kernel.org>; David S. Miller <davem@davemloft.net>; Eric Dumazet
><edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; Paolo Abeni
><pabeni@redhat.com>
>Cc: Nick Desaulniers <ndesaulniers@google.com>; Tom Rix
><trix@redhat.com>; Boris Pismenny <borisp@nvidia.com>; Raed Salem
><raeds@nvidia.com>; Lior Nahmanson <liorna@nvidia.com>;
>netdev@vger.kernel.org; linux-rdma@vger.kernel.org; linux-
>kernel@vger.kernel.org; llvm@lists.linux.dev; patches@lists.linux.dev;
>Nathan Chancellor <nathan@kernel.org>
>Subject: [PATCH net-next v2] net/mlx5e: Ensure macsec_rule is always
>initiailized in macsec_fs_{r,t}x_add_rule()
>
>External email: Use caution opening links or attachments
>
>
>Clang warns:
>
> drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec_fs.c:539:6:
>error: variable 'macsec_rule' is used uninitialized whenever 'if' condition is
>true [-Werror,-Wsometimes-uninitialized]
> if (err)
> ^~~
> drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec_fs.c:598:9:
>note: uninitialized use occurs here
> return macsec_rule;
> ^~~~~~~~~~~
> drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec_fs.c:539:2:
>note: remove the 'if' if its condition is always false
> if (err)
> ^~~~~~~~
> drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec_fs.c:523:38:
>note: initialize the variable 'macsec_rule' to silence this warning
> union mlx5e_macsec_rule *macsec_rule;
> ^
> = NULL
> drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec_fs.c:1131:6:
>error: variable 'macsec_rule' is used uninitialized whenever 'if' condition is
>true [-Werror,-Wsometimes-uninitialized]
> if (err)
> ^~~
> drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec_fs.c:1215:9:
>note: uninitialized use occurs here
> return macsec_rule;
> ^~~~~~~~~~~
> drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec_fs.c:1131:2:
>note: remove the 'if' if its condition is always false
> if (err)
> ^~~~~~~~
> drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec_fs.c:1118:38:
>note: initialize the variable 'macsec_rule' to silence this warning
> union mlx5e_macsec_rule *macsec_rule;
> ^
> = NULL
> 2 errors generated.
>
>If macsec_fs_{r,t}x_ft_get() fail, macsec_rule will be uninitialized.
>Initialize it to NULL at the top of each function so that it cannot be used
>uninitialized.
>
>Fixes: e467b283ffd5 ("net/mlx5e: Add MACsec TX steering rules")
>Fixes: 3b20949cb21b ("net/mlx5e: Add MACsec RX steering rules")
>Link: https://github.com/ClangBuiltLinux/linux/issues/1706
>Signed-off-by: Nathan Chancellor <nathan@kernel.org>
>---
Reviewed-by: Raed Salem <raeds@nvidia.com>
>
>v1 -> v2: https://lore.kernel.org/20220908153207.4048871-1-
>nathan@kernel.org/
>
>* Don't use a label and goto, just initialize it to NULL at the top of
> the functions (Raed).
>
>Tom, I did not carry forward your reviewed-by tag, even though this is a pretty
>obvious fix.
>
>Blurb from v1:
>
>I thought netdev was doing testing with clang so that new warnings do not
>show up. Did something break or stop working since this is the second time in
>two weeks that new warnings have appeared in -next?
>
> drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec_fs.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec_fs.c
>b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec_fs.c
>index 608fbbaa5a58..13dc628b988a 100644
>--- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec_fs.c
>+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec_fs.c
>@@ -518,9 +518,9 @@ macsec_fs_tx_add_rule(struct mlx5e_macsec_fs
>*macsec_fs,
> struct mlx5_pkt_reformat_params reformat_params = {};
> struct mlx5e_macsec_tx *tx_fs = macsec_fs->tx_fs;
> struct net_device *netdev = macsec_fs->netdev;
>+ union mlx5e_macsec_rule *macsec_rule = NULL;
> struct mlx5_flow_destination dest = {};
> struct mlx5e_macsec_tables *tx_tables;
>- union mlx5e_macsec_rule *macsec_rule;
> struct mlx5e_macsec_tx_rule *tx_rule;
> struct mlx5_flow_act flow_act = {};
> struct mlx5_flow_handle *rule;
>@@ -1112,10 +1112,10 @@ macsec_fs_rx_add_rule(struct mlx5e_macsec_fs
>*macsec_fs,
> u8 action[MLX5_UN_SZ_BYTES(set_add_copy_action_in_auto)] = {};
> struct mlx5e_macsec_rx *rx_fs = macsec_fs->rx_fs;
> struct net_device *netdev = macsec_fs->netdev;
>+ union mlx5e_macsec_rule *macsec_rule = NULL;
> struct mlx5_modify_hdr *modify_hdr = NULL;
> struct mlx5_flow_destination dest = {};
> struct mlx5e_macsec_tables *rx_tables;
>- union mlx5e_macsec_rule *macsec_rule;
> struct mlx5e_macsec_rx_rule *rx_rule;
> struct mlx5_flow_act flow_act = {};
> struct mlx5e_flow_table *ft_crypto;
>
>base-commit: 169ccf0e40825d9e465863e4707d8e8546d3c3cb
>--
>2.37.3

\
 
 \ /
  Last update: 2022-09-11 12:36    [W:0.080 / U:0.068 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site