[PATCH] iwlwifi: work around -Wenum-compare-conditional warning

Arnd Bergmann posted 1 patch 1 month, 1 week ago
drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
[PATCH] iwlwifi: work around -Wenum-compare-conditional warning
Posted by Arnd Bergmann 1 month, 1 week ago
From: Arnd Bergmann <arnd@arndb.de>

This is one of only three -Wenum-compare-conditional warnings we get
in randconfig builds:

drivers/net/wireless/intel/iwlwifi/mvm/sta.c:4331:17: error: conditional expression between different enumeration types ('enum iwl_fw_sta_type' and 'enum iwl_sta_type') [-Werror,-Wenum-compare-conditional]
 4331 |         u32 type = mld ? STATION_TYPE_PEER : IWL_STA_LINK;
      |                        ^ ~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~

This is a false positive since the code works as intended, but the
warning is otherwise sensible, so slightly rewrite it in order to
not trigger the warning.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
I also tried a more complex approach of splitting the function into
two separate ones, since the 'mld' behavior is already quite different
from the other path. The version I post here ended up looking simpler
to me, but I can also send the other one if the maintainers prefer.
---
 drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
index b6c99cd6d9e5..9d05c344d967 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
@@ -4328,7 +4328,10 @@ int iwl_mvm_add_pasn_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
 	unsigned int wdg_timeout =
 		iwl_mvm_get_wd_timeout(mvm, vif);
 	bool mld = iwl_mvm_has_mld_api(mvm->fw);
-	u32 type = mld ? STATION_TYPE_PEER : IWL_STA_LINK;
+	u32 type = IWL_STA_LINK;
+
+	if (mld)
+		type = STATION_TYPE_PEER;
 
 	ret = iwl_mvm_allocate_int_sta(mvm, sta, 0,
 				       NL80211_IFTYPE_UNSPECIFIED, type);
-- 
2.39.5
Re: [PATCH] iwlwifi: work around -Wenum-compare-conditional warning
Posted by Kalle Valo 1 month, 1 week ago
Arnd Bergmann <arnd@kernel.org> writes:

> From: Arnd Bergmann <arnd@arndb.de>
>
> This is one of only three -Wenum-compare-conditional warnings we get
> in randconfig builds:
>
> drivers/net/wireless/intel/iwlwifi/mvm/sta.c:4331:17: error: conditional expression between different enumeration types ('enum iwl_fw_sta_type' and 'enum iwl_sta_type') [-Werror,-Wenum-compare-conditional]
>  4331 |         u32 type = mld ? STATION_TYPE_PEER : IWL_STA_LINK;
>       |                        ^ ~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~
>
> This is a false positive since the code works as intended, but the
> warning is otherwise sensible, so slightly rewrite it in order to
> not trigger the warning.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Is this and the other rtw89 patch for current release or -next?

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
Re: [PATCH] iwlwifi: work around -Wenum-compare-conditional warning
Posted by Arnd Bergmann 1 month, 1 week ago
On Fri, Oct 18, 2024, at 16:06, Kalle Valo wrote:
> Arnd Bergmann <arnd@kernel.org> writes:
>
>> From: Arnd Bergmann <arnd@arndb.de>
>>
>> This is one of only three -Wenum-compare-conditional warnings we get
>> in randconfig builds:
>>
>> drivers/net/wireless/intel/iwlwifi/mvm/sta.c:4331:17: error: conditional expression between different enumeration types ('enum iwl_fw_sta_type' and 'enum iwl_sta_type') [-Werror,-Wenum-compare-conditional]
>>  4331 |         u32 type = mld ? STATION_TYPE_PEER : IWL_STA_LINK;
>>       |                        ^ ~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~
>>
>> This is a false positive since the code works as intended, but the
>> warning is otherwise sensible, so slightly rewrite it in order to
>> not trigger the warning.
>>
>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>
> Is this and the other rtw89 patch for current release or -next?

Up to you, the warning has existed for a long time at W=1
level, so the patch applies to current and stable kernels
as well, but it's not a regression or particularly important.

It would be nice to turn on the warning by default in 6.13
once the three patches I sent get applied.

      Arnd
Re: [PATCH] iwlwifi: work around -Wenum-compare-conditional warning
Posted by Kalle Valo 1 month ago
"Arnd Bergmann" <arnd@arndb.de> writes:

> On Fri, Oct 18, 2024, at 16:06, Kalle Valo wrote:
>> Arnd Bergmann <arnd@kernel.org> writes:
>>
>>> From: Arnd Bergmann <arnd@arndb.de>
>>>
>>> This is one of only three -Wenum-compare-conditional warnings we get
>>> in randconfig builds:
>>>
>>> drivers/net/wireless/intel/iwlwifi/mvm/sta.c:4331:17: error: conditional expression between different enumeration types ('enum iwl_fw_sta_type' and 'enum iwl_sta_type') [-Werror,-Wenum-compare-conditional]
>>>  4331 |         u32 type = mld ? STATION_TYPE_PEER : IWL_STA_LINK;
>>>       |                        ^ ~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~
>>>
>>> This is a false positive since the code works as intended, but the
>>> warning is otherwise sensible, so slightly rewrite it in order to
>>> not trigger the warning.
>>>
>>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>>
>> Is this and the other rtw89 patch for current release or -next?
>
> Up to you, the warning has existed for a long time at W=1
> level, so the patch applies to current and stable kernels
> as well, but it's not a regression or particularly important.

Ok, I guess -next is more approriate then.

> It would be nice to turn on the warning by default in 6.13
> once the three patches I sent get applied.

It's not certain if driver specific trees make it to v6.13 so should the
patches applied directly to wireless-next?

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches