Skip to contentSkip to conversation

iwlwifi: work around -Wenum-compare-conditional warning

PATCH In review Arnd Bergmann 3 participants 4 messages Oct 18, 2024 – Oct 21, 2024 Intel wireless wifi link (iwlwifi)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 iwlwifi: work around -Wenum-compare-conditional warning

From: Arnd Bergmann <[email protected]>

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.

---
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(-)
drivers/net/wireless/intel/iwlwifi/mvm/sta.c +4 -1
index b6c99cd6d9e5..9d05c344d967 100644
@@ -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);
Signature · 1 line
2.39.5
#1 lore raw
Quoted 6 lines · Arnd Bergmann

From: Arnd Bergmann <[email protected]>

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]

Quoted 8 lines
 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.

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

Signature · 3 lines
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
#2 lore raw
Quoted 11 lines · Kalle Valo
Quoted 9 lines · Arnd Bergmann

From: Arnd Bergmann <[email protected]>

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;
      |                        ^ ~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~
Quoted 7 lines
Quoted 5 lines

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.

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

#3 lore raw
Quoted 16 lines · Arnd Bergmann
Quoted 15 lines · Kalle Valo
Quoted 13 lines · Arnd Bergmann

From: Arnd Bergmann <[email protected]>

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.

Quoted 7 lines
Quoted 3 lines
Quoted 1 line

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.

Quoted 2 lines

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?

Signature · 3 lines
https://patchwork.kernel.org/project/linux-wireless/list/

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