diff mbox series

iwlwifi: mvm: Change an 'else if' into an 'else' in iwl_mvm_send_add_bcast_sta

Message ID 20190308000322.5379-1-natechancellor@gmail.com
State Awaiting Upstream
Delegated to: David Miller
Headers show
Series iwlwifi: mvm: Change an 'else if' into an 'else' in iwl_mvm_send_add_bcast_sta | expand

Commit Message

Nathan Chancellor March 8, 2019, 12:03 a.m. UTC
When building with -Wsometimes-uninitialized, Clang warns:

drivers/net/wireless/intel/iwlwifi/mvm/sta.c:2114:12: warning: variable
'queue' is used uninitialized whenever 'if' condition is false
[-Wsometimes-uninitialized]

Clang can't evaluate at this point that WARN(1, ...) always returns true
because __ret_warn_on is defined as !!(condition), which isn't
immediately evaluated as 1. Change this branch to else so that it's
clear to Clang that we intend to bail out here.

Link: https://github.com/ClangBuiltLinux/linux/issues/399
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
---
 drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Nick Desaulniers March 8, 2019, 12:08 a.m. UTC | #1
On Thu, Mar 7, 2019 at 4:03 PM Nathan Chancellor
<natechancellor@gmail.com> wrote:
>
> When building with -Wsometimes-uninitialized, Clang warns:
>
> drivers/net/wireless/intel/iwlwifi/mvm/sta.c:2114:12: warning: variable
> 'queue' is used uninitialized whenever 'if' condition is false
> [-Wsometimes-uninitialized]
>
> Clang can't evaluate at this point that WARN(1, ...) always returns true
> because __ret_warn_on is defined as !!(condition), which isn't
> immediately evaluated as 1. Change this branch to else so that it's
> clear to Clang that we intend to bail out here.
>
> Link: https://github.com/ClangBuiltLinux/linux/issues/399
> Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>

Thanks for the simple fix.
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>

> ---
>  drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
> index 498c315291cf..360724ec41a6 100644
> --- a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
> +++ b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
> @@ -2111,8 +2111,10 @@ int iwl_mvm_send_add_bcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
>                         queue = mvm->probe_queue;
>                 else if (vif->type == NL80211_IFTYPE_P2P_DEVICE)
>                         queue = mvm->p2p_dev_queue;
> -               else if (WARN(1, "Missing required TXQ for adding bcast STA\n"))
> +               else {
> +                       WARN(1, "Missing required TXQ for adding bcast STA\n");
>                         return -EINVAL;
> +               }
>
>                 bsta->tfd_queue_msk |= BIT(queue);
>
> --
> 2.21.0
>
Luca Coelho March 11, 2019, 7:45 a.m. UTC | #2
On Thu, 2019-03-07 at 16:08 -0800, Nick Desaulniers wrote:
> On Thu, Mar 7, 2019 at 4:03 PM Nathan Chancellor
> <natechancellor@gmail.com> wrote:
> > When building with -Wsometimes-uninitialized, Clang warns:
> > 
> > drivers/net/wireless/intel/iwlwifi/mvm/sta.c:2114:12: warning:
> > variable
> > 'queue' is used uninitialized whenever 'if' condition is false
> > [-Wsometimes-uninitialized]
> > 
> > Clang can't evaluate at this point that WARN(1, ...) always returns
> > true
> > because __ret_warn_on is defined as !!(condition), which isn't
> > immediately evaluated as 1. Change this branch to else so that it's
> > clear to Clang that we intend to bail out here.
> > 
> > Link: https://github.com/ClangBuiltLinux/linux/issues/399
> > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
> 
> Thanks for the simple fix.
> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>

Thanks for the patch and for the review!

I have applied it in our internal tree and it will reach the mainline
following our normal upstreaming process.

--
Cheers,
Luca.
diff mbox series

Patch

diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
index 498c315291cf..360724ec41a6 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
@@ -2111,8 +2111,10 @@  int iwl_mvm_send_add_bcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
 			queue = mvm->probe_queue;
 		else if (vif->type == NL80211_IFTYPE_P2P_DEVICE)
 			queue = mvm->p2p_dev_queue;
-		else if (WARN(1, "Missing required TXQ for adding bcast STA\n"))
+		else {
+			WARN(1, "Missing required TXQ for adding bcast STA\n");
 			return -EINVAL;
+		}
 
 		bsta->tfd_queue_msk |= BIT(queue);