* [PATCH] net/mlx5e: Return in default case statement in tx_post_resync_params @ 2019-07-08 23:11 Nathan Chancellor 2019-07-09 22:44 ` Nick Desaulniers 2019-07-10 4:47 ` [PATCH v2] net/mlx5e: Refactor switch statements to avoid using uninitialized variables Nathan Chancellor 0 siblings, 2 replies; 11+ messages in thread From: Nathan Chancellor @ 2019-07-08 23:11 UTC (permalink / raw) To: Saeed Mahameed, Leon Romanovsky Cc: David S. Miller, Boris Pismenny, netdev, linux-rdma, linux-kernel, clang-built-linux, Nathan Chancellor clang warns: drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c:251:2: warning: variable 'rec_seq_sz' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized] default: ^~~~~~~ drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c:255:46: note: uninitialized use occurs here skip_static_post = !memcmp(rec_seq, &rn_be, rec_seq_sz); ^~~~~~~~~~ drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c:239:16: note: initialize the variable 'rec_seq_sz' to silence this warning u16 rec_seq_sz; ^ = 0 1 warning generated. This case statement was clearly designed to be one that should not be hit during runtime because of the WARN_ON statement so just return early to prevent copying uninitialized memory up into rn_be. Fixes: d2ead1f360e8 ("net/mlx5e: Add kTLS TX HW offload support") Link: https://github.com/ClangBuiltLinux/linux/issues/590 Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> --- drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c index 3f5f4317a22b..5c08891806f0 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c @@ -250,6 +250,7 @@ tx_post_resync_params(struct mlx5e_txqsq *sq, } default: WARN_ON(1); + return; } skip_static_post = !memcmp(rec_seq, &rn_be, rec_seq_sz); -- 2.22.0 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH] net/mlx5e: Return in default case statement in tx_post_resync_params 2019-07-08 23:11 [PATCH] net/mlx5e: Return in default case statement in tx_post_resync_params Nathan Chancellor @ 2019-07-09 22:44 ` Nick Desaulniers 2019-07-09 23:10 ` Nathan Chancellor 2019-07-10 4:47 ` [PATCH v2] net/mlx5e: Refactor switch statements to avoid using uninitialized variables Nathan Chancellor 1 sibling, 1 reply; 11+ messages in thread From: Nick Desaulniers @ 2019-07-09 22:44 UTC (permalink / raw) To: Nathan Chancellor Cc: Saeed Mahameed, Leon Romanovsky, David S. Miller, Boris Pismenny, netdev, linux-rdma, LKML, clang-built-linux On Mon, Jul 8, 2019 at 4:13 PM Nathan Chancellor <natechancellor@gmail.com> wrote: > > clang warns: > > drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c:251:2: > warning: variable 'rec_seq_sz' is used uninitialized whenever switch > default is taken [-Wsometimes-uninitialized] > default: > ^~~~~~~ > drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c:255:46: note: > uninitialized use occurs here > skip_static_post = !memcmp(rec_seq, &rn_be, rec_seq_sz); > ^~~~~~~~~~ > drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c:239:16: note: > initialize the variable 'rec_seq_sz' to silence this warning > u16 rec_seq_sz; > ^ > = 0 > 1 warning generated. > > This case statement was clearly designed to be one that should not be > hit during runtime because of the WARN_ON statement so just return early > to prevent copying uninitialized memory up into rn_be. > > Fixes: d2ead1f360e8 ("net/mlx5e: Add kTLS TX HW offload support") > Link: https://github.com/ClangBuiltLinux/linux/issues/590 > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> > --- > drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c > index 3f5f4317a22b..5c08891806f0 100644 > --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c > +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c > @@ -250,6 +250,7 @@ tx_post_resync_params(struct mlx5e_txqsq *sq, > } > default: > WARN_ON(1); > + return; > } hmm...a switch statement with a single case is a code smell. How about a single conditional with early return? Then the "meat" of the happy path doesn't need an additional level of indentation. -- Thanks, ~Nick Desaulniers ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] net/mlx5e: Return in default case statement in tx_post_resync_params 2019-07-09 22:44 ` Nick Desaulniers @ 2019-07-09 23:10 ` Nathan Chancellor 2019-07-10 4:24 ` Leon Romanovsky 0 siblings, 1 reply; 11+ messages in thread From: Nathan Chancellor @ 2019-07-09 23:10 UTC (permalink / raw) To: Nick Desaulniers Cc: Saeed Mahameed, Leon Romanovsky, David S. Miller, Boris Pismenny, netdev, linux-rdma, LKML, clang-built-linux On Tue, Jul 09, 2019 at 03:44:59PM -0700, Nick Desaulniers wrote: > On Mon, Jul 8, 2019 at 4:13 PM Nathan Chancellor > <natechancellor@gmail.com> wrote: > > > > clang warns: > > > > drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c:251:2: > > warning: variable 'rec_seq_sz' is used uninitialized whenever switch > > default is taken [-Wsometimes-uninitialized] > > default: > > ^~~~~~~ > > drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c:255:46: note: > > uninitialized use occurs here > > skip_static_post = !memcmp(rec_seq, &rn_be, rec_seq_sz); > > ^~~~~~~~~~ > > drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c:239:16: note: > > initialize the variable 'rec_seq_sz' to silence this warning > > u16 rec_seq_sz; > > ^ > > = 0 > > 1 warning generated. > > > > This case statement was clearly designed to be one that should not be > > hit during runtime because of the WARN_ON statement so just return early > > to prevent copying uninitialized memory up into rn_be. > > > > Fixes: d2ead1f360e8 ("net/mlx5e: Add kTLS TX HW offload support") > > Link: https://github.com/ClangBuiltLinux/linux/issues/590 > > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> > > --- > > drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c > > index 3f5f4317a22b..5c08891806f0 100644 > > --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c > > +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c > > @@ -250,6 +250,7 @@ tx_post_resync_params(struct mlx5e_txqsq *sq, > > } > > default: > > WARN_ON(1); > > + return; > > } > > hmm...a switch statement with a single case is a code smell. How > about a single conditional with early return? Then the "meat" of the > happy path doesn't need an additional level of indentation. > -- > Thanks, > ~Nick Desaulniers I assume that the reason for this is there may be other cipher types added in the future? I suppose the maintainers can give more clarity to that. Furthermore, if they want the switch statements to remain, it looks like fill_static_params_ctx also returns in the default statement so it seems like this is the right fix. Cheers, Nathan ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] net/mlx5e: Return in default case statement in tx_post_resync_params 2019-07-09 23:10 ` Nathan Chancellor @ 2019-07-10 4:24 ` Leon Romanovsky 0 siblings, 0 replies; 11+ messages in thread From: Leon Romanovsky @ 2019-07-10 4:24 UTC (permalink / raw) To: Nathan Chancellor Cc: Nick Desaulniers, Saeed Mahameed, David S. Miller, Boris Pismenny, netdev, linux-rdma, LKML, clang-built-linux On Tue, Jul 09, 2019 at 04:10:24PM -0700, Nathan Chancellor wrote: > On Tue, Jul 09, 2019 at 03:44:59PM -0700, Nick Desaulniers wrote: > > On Mon, Jul 8, 2019 at 4:13 PM Nathan Chancellor > > <natechancellor@gmail.com> wrote: > > > > > > clang warns: > > > > > > drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c:251:2: > > > warning: variable 'rec_seq_sz' is used uninitialized whenever switch > > > default is taken [-Wsometimes-uninitialized] > > > default: > > > ^~~~~~~ > > > drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c:255:46: note: > > > uninitialized use occurs here > > > skip_static_post = !memcmp(rec_seq, &rn_be, rec_seq_sz); > > > ^~~~~~~~~~ > > > drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c:239:16: note: > > > initialize the variable 'rec_seq_sz' to silence this warning > > > u16 rec_seq_sz; > > > ^ > > > = 0 > > > 1 warning generated. > > > > > > This case statement was clearly designed to be one that should not be > > > hit during runtime because of the WARN_ON statement so just return early > > > to prevent copying uninitialized memory up into rn_be. > > > > > > Fixes: d2ead1f360e8 ("net/mlx5e: Add kTLS TX HW offload support") > > > Link: https://github.com/ClangBuiltLinux/linux/issues/590 > > > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> > > > --- > > > drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c | 1 + > > > 1 file changed, 1 insertion(+) > > > > > > diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c > > > index 3f5f4317a22b..5c08891806f0 100644 > > > --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c > > > +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c > > > @@ -250,6 +250,7 @@ tx_post_resync_params(struct mlx5e_txqsq *sq, > > > } > > > default: > > > WARN_ON(1); > > > + return; > > > } > > > > hmm...a switch statement with a single case is a code smell. How > > about a single conditional with early return? Then the "meat" of the > > happy path doesn't need an additional level of indentation. > > -- > > Thanks, > > ~Nick Desaulniers > > I assume that the reason for this is there may be other cipher types > added in the future? I suppose the maintainers can give more clarity to > that. Our devices supports extra ciphers, for example TLS_CIPHER_AES_GCM_256. So I assume this was the reason for switch<->case, but because such implementation doesn't exist in any driver, I recommend to rewrite the code to have "if" statement and return early. > > Furthermore, if they want the switch statements to remain, it looks like > fill_static_params_ctx also returns in the default statement so it seems > like this is the right fix. > > Cheers, > Nathan ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2] net/mlx5e: Refactor switch statements to avoid using uninitialized variables 2019-07-08 23:11 [PATCH] net/mlx5e: Return in default case statement in tx_post_resync_params Nathan Chancellor 2019-07-09 22:44 ` Nick Desaulniers @ 2019-07-10 4:47 ` Nathan Chancellor 2019-07-10 5:22 ` Leon Romanovsky ` (2 more replies) 1 sibling, 3 replies; 11+ messages in thread From: Nathan Chancellor @ 2019-07-10 4:47 UTC (permalink / raw) To: Saeed Mahameed, Leon Romanovsky Cc: David S. Miller, Boris Pismenny, netdev, linux-rdma, linux-kernel, clang-built-linux, Nathan Chancellor, Nick Desaulniers clang warns: drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c:251:2: warning: variable 'rec_seq_sz' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized] default: ^~~~~~~ drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c:255:46: note: uninitialized use occurs here skip_static_post = !memcmp(rec_seq, &rn_be, rec_seq_sz); ^~~~~~~~~~ drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c:239:16: note: initialize the variable 'rec_seq_sz' to silence this warning u16 rec_seq_sz; ^ = 0 1 warning generated. The default case statement should return in tx_post_resync_params like in fill_static_params_ctx. However, as Nick and Leon point out, the switch statements converted into if statements to clean up the code a bit since there is only one cipher supported. Do that to clear up the code. Fixes: d2ead1f360e8 ("net/mlx5e: Add kTLS TX HW offload support") Link: https://github.com/ClangBuiltLinux/linux/issues/590 Suggested-by: Leon Romanovsky <leon@kernel.org> Suggested-by: Nick Desaulniers <ndesaulniers@google.com> Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> --- v1 -> v2: * Refactor switch statements into if statements .../mellanox/mlx5/core/en_accel/ktls_tx.c | 33 +++++++------------ 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c index 3f5f4317a22b..ea032f54197e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c @@ -25,23 +25,17 @@ static void fill_static_params_ctx(void *ctx, struct mlx5e_ktls_offload_context_tx *priv_tx) { struct tls_crypto_info *crypto_info = priv_tx->crypto_info; + struct tls12_crypto_info_aes_gcm_128 *info; char *initial_rn, *gcm_iv; u16 salt_sz, rec_seq_sz; char *salt, *rec_seq; u8 tls_version; - switch (crypto_info->cipher_type) { - case TLS_CIPHER_AES_GCM_128: { - struct tls12_crypto_info_aes_gcm_128 *info = - (struct tls12_crypto_info_aes_gcm_128 *)crypto_info; - - EXTRACT_INFO_FIELDS; - break; - } - default: - WARN_ON(1); + if (WARN_ON(crypto_info->cipher_type != TLS_CIPHER_AES_GCM_128)) return; - } + + info = (struct tls12_crypto_info_aes_gcm_128 *)crypto_info; + EXTRACT_INFO_FIELDS; gcm_iv = MLX5_ADDR_OF(tls_static_params, ctx, gcm_iv); initial_rn = MLX5_ADDR_OF(tls_static_params, ctx, initial_record_number); @@ -234,23 +228,18 @@ tx_post_resync_params(struct mlx5e_txqsq *sq, u64 rcd_sn) { struct tls_crypto_info *crypto_info = priv_tx->crypto_info; + struct tls12_crypto_info_aes_gcm_128 *info; __be64 rn_be = cpu_to_be64(rcd_sn); bool skip_static_post; u16 rec_seq_sz; char *rec_seq; - switch (crypto_info->cipher_type) { - case TLS_CIPHER_AES_GCM_128: { - struct tls12_crypto_info_aes_gcm_128 *info = - (struct tls12_crypto_info_aes_gcm_128 *)crypto_info; + if (WARN_ON(crypto_info->cipher_type != TLS_CIPHER_AES_GCM_128)) + return; - rec_seq = info->rec_seq; - rec_seq_sz = sizeof(info->rec_seq); - break; - } - default: - WARN_ON(1); - } + info = (struct tls12_crypto_info_aes_gcm_128 *)crypto_info; + rec_seq = info->rec_seq; + rec_seq_sz = sizeof(info->rec_seq); skip_static_post = !memcmp(rec_seq, &rn_be, rec_seq_sz); if (!skip_static_post) -- 2.22.0 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2] net/mlx5e: Refactor switch statements to avoid using uninitialized variables 2019-07-10 4:47 ` [PATCH v2] net/mlx5e: Refactor switch statements to avoid using uninitialized variables Nathan Chancellor @ 2019-07-10 5:22 ` Leon Romanovsky 2019-07-10 5:36 ` David Miller 2019-07-10 6:06 ` [PATCH net-next v3] net/mlx5e: Convert single case statement switch statements into if statements Nathan Chancellor 2 siblings, 0 replies; 11+ messages in thread From: Leon Romanovsky @ 2019-07-10 5:22 UTC (permalink / raw) To: Nathan Chancellor Cc: Saeed Mahameed, David S. Miller, Boris Pismenny, netdev, linux-rdma, linux-kernel, clang-built-linux, Nick Desaulniers On Tue, Jul 09, 2019 at 09:47:49PM -0700, Nathan Chancellor wrote: > clang warns: > > drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c:251:2: > warning: variable 'rec_seq_sz' is used uninitialized whenever switch > default is taken [-Wsometimes-uninitialized] > default: > ^~~~~~~ > drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c:255:46: note: > uninitialized use occurs here > skip_static_post = !memcmp(rec_seq, &rn_be, rec_seq_sz); > ^~~~~~~~~~ > drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c:239:16: note: > initialize the variable 'rec_seq_sz' to silence this warning > u16 rec_seq_sz; > ^ > = 0 > 1 warning generated. > > The default case statement should return in tx_post_resync_params like > in fill_static_params_ctx. However, as Nick and Leon point out, the > switch statements converted into if statements to clean up the code a > bit since there is only one cipher supported. Do that to clear up the > code. > > Fixes: d2ead1f360e8 ("net/mlx5e: Add kTLS TX HW offload support") > Link: https://github.com/ClangBuiltLinux/linux/issues/590 > Suggested-by: Leon Romanovsky <leon@kernel.org> > Suggested-by: Nick Desaulniers <ndesaulniers@google.com> > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> > --- > > v1 -> v2: > > * Refactor switch statements into if statements > > .../mellanox/mlx5/core/en_accel/ktls_tx.c | 33 +++++++------------ > 1 file changed, 11 insertions(+), 22 deletions(-) > Thanks, Reviewed-by: Leon Romanovsky <leonro@mellanox.com> ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2] net/mlx5e: Refactor switch statements to avoid using uninitialized variables 2019-07-10 4:47 ` [PATCH v2] net/mlx5e: Refactor switch statements to avoid using uninitialized variables Nathan Chancellor 2019-07-10 5:22 ` Leon Romanovsky @ 2019-07-10 5:36 ` David Miller 2019-07-10 5:57 ` Nathan Chancellor 2019-07-10 6:06 ` [PATCH net-next v3] net/mlx5e: Convert single case statement switch statements into if statements Nathan Chancellor 2 siblings, 1 reply; 11+ messages in thread From: David Miller @ 2019-07-10 5:36 UTC (permalink / raw) To: natechancellor Cc: saeedm, leon, borisp, netdev, linux-rdma, linux-kernel, clang-built-linux, ndesaulniers I applied your simpler addition of the return statement so that I could get the net-next pull request out tonight, just FYI... ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2] net/mlx5e: Refactor switch statements to avoid using uninitialized variables 2019-07-10 5:36 ` David Miller @ 2019-07-10 5:57 ` Nathan Chancellor 0 siblings, 0 replies; 11+ messages in thread From: Nathan Chancellor @ 2019-07-10 5:57 UTC (permalink / raw) To: David Miller Cc: saeedm, leon, borisp, netdev, linux-rdma, linux-kernel, clang-built-linux, ndesaulniers On Tue, Jul 09, 2019 at 10:36:57PM -0700, David Miller wrote: > > I applied your simpler addition of the return statement so that I could > get the net-next pull request out tonight, just FYI... Thanks for the heads up, I'll spin up a v3 just focusing on the refactoring. Cheers, Nathan ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH net-next v3] net/mlx5e: Convert single case statement switch statements into if statements 2019-07-10 4:47 ` [PATCH v2] net/mlx5e: Refactor switch statements to avoid using uninitialized variables Nathan Chancellor 2019-07-10 5:22 ` Leon Romanovsky 2019-07-10 5:36 ` David Miller @ 2019-07-10 6:06 ` Nathan Chancellor 2019-07-10 9:31 ` Leon Romanovsky 2019-07-12 18:37 ` David Miller 2 siblings, 2 replies; 11+ messages in thread From: Nathan Chancellor @ 2019-07-10 6:06 UTC (permalink / raw) To: Saeed Mahameed, Leon Romanovsky Cc: David S. Miller, Boris Pismenny, netdev, linux-rdma, linux-kernel, clang-built-linux, Nathan Chancellor, Nick Desaulniers During the review of commit 1ff2f0fa450e ("net/mlx5e: Return in default case statement in tx_post_resync_params"), Leon and Nick pointed out that the switch statements can be converted to single if statements that return early so that the code is easier to follow. Suggested-by: Leon Romanovsky <leon@kernel.org> Suggested-by: Nick Desaulniers <ndesaulniers@google.com> Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> --- v1 -> v2: * Refactor switch statements into if statements v2 -> v3: * Rebase on net-next after v1 was already applied, patch just refactors switch statements to if statements. .../mellanox/mlx5/core/en_accel/ktls_tx.c | 34 ++++++------------- 1 file changed, 11 insertions(+), 23 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c index 5c08891806f0..ea032f54197e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c @@ -25,23 +25,17 @@ static void fill_static_params_ctx(void *ctx, struct mlx5e_ktls_offload_context_tx *priv_tx) { struct tls_crypto_info *crypto_info = priv_tx->crypto_info; + struct tls12_crypto_info_aes_gcm_128 *info; char *initial_rn, *gcm_iv; u16 salt_sz, rec_seq_sz; char *salt, *rec_seq; u8 tls_version; - switch (crypto_info->cipher_type) { - case TLS_CIPHER_AES_GCM_128: { - struct tls12_crypto_info_aes_gcm_128 *info = - (struct tls12_crypto_info_aes_gcm_128 *)crypto_info; - - EXTRACT_INFO_FIELDS; - break; - } - default: - WARN_ON(1); + if (WARN_ON(crypto_info->cipher_type != TLS_CIPHER_AES_GCM_128)) return; - } + + info = (struct tls12_crypto_info_aes_gcm_128 *)crypto_info; + EXTRACT_INFO_FIELDS; gcm_iv = MLX5_ADDR_OF(tls_static_params, ctx, gcm_iv); initial_rn = MLX5_ADDR_OF(tls_static_params, ctx, initial_record_number); @@ -234,24 +228,18 @@ tx_post_resync_params(struct mlx5e_txqsq *sq, u64 rcd_sn) { struct tls_crypto_info *crypto_info = priv_tx->crypto_info; + struct tls12_crypto_info_aes_gcm_128 *info; __be64 rn_be = cpu_to_be64(rcd_sn); bool skip_static_post; u16 rec_seq_sz; char *rec_seq; - switch (crypto_info->cipher_type) { - case TLS_CIPHER_AES_GCM_128: { - struct tls12_crypto_info_aes_gcm_128 *info = - (struct tls12_crypto_info_aes_gcm_128 *)crypto_info; - - rec_seq = info->rec_seq; - rec_seq_sz = sizeof(info->rec_seq); - break; - } - default: - WARN_ON(1); + if (WARN_ON(crypto_info->cipher_type != TLS_CIPHER_AES_GCM_128)) return; - } + + info = (struct tls12_crypto_info_aes_gcm_128 *)crypto_info; + rec_seq = info->rec_seq; + rec_seq_sz = sizeof(info->rec_seq); skip_static_post = !memcmp(rec_seq, &rn_be, rec_seq_sz); if (!skip_static_post) -- 2.22.0 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH net-next v3] net/mlx5e: Convert single case statement switch statements into if statements 2019-07-10 6:06 ` [PATCH net-next v3] net/mlx5e: Convert single case statement switch statements into if statements Nathan Chancellor @ 2019-07-10 9:31 ` Leon Romanovsky 2019-07-12 18:37 ` David Miller 1 sibling, 0 replies; 11+ messages in thread From: Leon Romanovsky @ 2019-07-10 9:31 UTC (permalink / raw) To: Nathan Chancellor Cc: Saeed Mahameed, David S. Miller, Boris Pismenny, netdev, linux-rdma, linux-kernel, clang-built-linux, Nick Desaulniers On Tue, Jul 09, 2019 at 11:06:15PM -0700, Nathan Chancellor wrote: > During the review of commit 1ff2f0fa450e ("net/mlx5e: Return in default > case statement in tx_post_resync_params"), Leon and Nick pointed out > that the switch statements can be converted to single if statements > that return early so that the code is easier to follow. > > Suggested-by: Leon Romanovsky <leon@kernel.org> > Suggested-by: Nick Desaulniers <ndesaulniers@google.com> > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> > --- Thanks again, Reviewed-by: Leon Romanovsky <leonro@mellanox.com> ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next v3] net/mlx5e: Convert single case statement switch statements into if statements 2019-07-10 6:06 ` [PATCH net-next v3] net/mlx5e: Convert single case statement switch statements into if statements Nathan Chancellor 2019-07-10 9:31 ` Leon Romanovsky @ 2019-07-12 18:37 ` David Miller 1 sibling, 0 replies; 11+ messages in thread From: David Miller @ 2019-07-12 18:37 UTC (permalink / raw) To: natechancellor Cc: saeedm, leon, borisp, netdev, linux-rdma, linux-kernel, clang-built-linux, ndesaulniers From: Nathan Chancellor <natechancellor@gmail.com> Date: Tue, 9 Jul 2019 23:06:15 -0700 > During the review of commit 1ff2f0fa450e ("net/mlx5e: Return in default > case statement in tx_post_resync_params"), Leon and Nick pointed out > that the switch statements can be converted to single if statements > that return early so that the code is easier to follow. > > Suggested-by: Leon Romanovsky <leon@kernel.org> > Suggested-by: Nick Desaulniers <ndesaulniers@google.com> > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> Applied, thanks for following up Nathan. ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2019-07-12 18:37 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-07-08 23:11 [PATCH] net/mlx5e: Return in default case statement in tx_post_resync_params Nathan Chancellor 2019-07-09 22:44 ` Nick Desaulniers 2019-07-09 23:10 ` Nathan Chancellor 2019-07-10 4:24 ` Leon Romanovsky 2019-07-10 4:47 ` [PATCH v2] net/mlx5e: Refactor switch statements to avoid using uninitialized variables Nathan Chancellor 2019-07-10 5:22 ` Leon Romanovsky 2019-07-10 5:36 ` David Miller 2019-07-10 5:57 ` Nathan Chancellor 2019-07-10 6:06 ` [PATCH net-next v3] net/mlx5e: Convert single case statement switch statements into if statements Nathan Chancellor 2019-07-10 9:31 ` Leon Romanovsky 2019-07-12 18:37 ` David Miller
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).