lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <7e1d4077-51d7-45ce-bab4-efec875b36f2@embeddedor.com> Date: Fri, 13 Sep 2024 12:14:03 +0200 From: "Gustavo A. R. Silva" <gustavo@...eddedor.com> To: kernel test robot <lkp@...el.com>, "Gustavo A. R. Silva" <gustavoars@...nel.org>, Miri Korenblit <miriam.rachel.korenblit@...el.com>, Kalle Valo <kvalo@...nel.org>, Johannes Berg <johannes@...solutions.net>, "David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com> Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev, netdev@...r.kernel.org, linux-wireless@...r.kernel.org, linux-kernel@...r.kernel.org, linux-hardening@...r.kernel.org Subject: Re: [PATCH v2][next] wifi: iwlwifi: mvm: Use __counted_by() and avoid -Wfamnae warnings On 10/08/24 22:26, kernel test robot wrote: > Hi Gustavo, > > kernel test robot noticed the following build errors: > > [auto build test ERROR on wireless-next/main] > [also build test ERROR on wireless/main linus/master v6.11-rc2 next-20240809] > [If your patch is applied to the wrong git tree, kindly drop us a note. > And when submitting patch, we suggest to use '--base' as documented in > https://git-scm.com/docs/git-format-patch#_base_tree_information] > > url: https://github.com/intel-lab-lkp/linux/commits/Gustavo-A-R-Silva/wifi-iwlwifi-mvm-Use-__counted_by-and-avoid-Wfamnae-warnings/20240810-103759 > base: https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git main > patch link: https://lore.kernel.org/r/ZrZs5KL5Pz9tIinr%40cute > patch subject: [PATCH v2][next] wifi: iwlwifi: mvm: Use __counted_by() and avoid -Wfamnae warnings > config: riscv-allmodconfig (https://download.01.org/0day-ci/archive/20240811/202408110634.V68RFEtW-lkp@intel.com/config) > compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project f86594788ce93b696675c94f54016d27a6c21d18) > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240811/202408110634.V68RFEtW-lkp@intel.com/reproduce) > > If you fix the issue in a separate patch/commit (i.e. not just a new version of > the same patch/commit), kindly add following tags > | Reported-by: kernel test robot <lkp@...el.com> > | Closes: https://lore.kernel.org/oe-kbuild-all/202408110634.V68RFEtW-lkp@intel.com/ > > All errors (new ones prefixed by >>): > > In file included from drivers/net/wireless/intel/iwlwifi/mvm/d3.c:7: > In file included from include/linux/etherdevice.h:20: > In file included from include/linux/if_ether.h:19: > In file included from include/linux/skbuff.h:17: > In file included from include/linux/bvec.h:10: > In file included from include/linux/highmem.h:8: > In file included from include/linux/cacheflush.h:5: > In file included from arch/riscv/include/asm/cacheflush.h:9: > In file included from include/linux/mm.h:2228: > include/linux/vmstat.h:500:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] > 500 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + > | ~~~~~~~~~~~~~~~~~~~~~ ^ > 501 | item]; > | ~~~~ > include/linux/vmstat.h:507:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] > 507 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + > | ~~~~~~~~~~~~~~~~~~~~~ ^ > 508 | NR_VM_NUMA_EVENT_ITEMS + > | ~~~~~~~~~~~~~~~~~~~~~~ > include/linux/vmstat.h:514:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] > 514 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_" > | ~~~~~~~~~~~ ^ ~~~ > include/linux/vmstat.h:519:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] > 519 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + > | ~~~~~~~~~~~~~~~~~~~~~ ^ > 520 | NR_VM_NUMA_EVENT_ITEMS + > | ~~~~~~~~~~~~~~~~~~~~~~ > include/linux/vmstat.h:528:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] > 528 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + > | ~~~~~~~~~~~~~~~~~~~~~ ^ > 529 | NR_VM_NUMA_EVENT_ITEMS + > | ~~~~~~~~~~~~~~~~~~~~~~ >>> drivers/net/wireless/intel/iwlwifi/mvm/d3.c:2149:2: error: call to '__compiletime_assert_1044' declared with 'error' attribute: BUILD_BUG_ON failed: conf->keylen < WLAN_KEY_LEN_GCMP_256 > 2149 | BUILD_BUG_ON(conf->keylen < WLAN_KEY_LEN_GCMP_256); > | ^ > include/linux/build_bug.h:50:2: note: expanded from macro 'BUILD_BUG_ON' > 50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition) > | ^ > include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG' > 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) > | ^ > include/linux/compiler_types.h:510:2: note: expanded from macro 'compiletime_assert' > 510 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) > | ^ > include/linux/compiler_types.h:498:2: note: expanded from macro '_compiletime_assert' > 498 | __compiletime_assert(condition, msg, prefix, suffix) > | ^ > include/linux/compiler_types.h:491:4: note: expanded from macro '__compiletime_assert' > 491 | prefix ## suffix(); \ > | ^ > <scratch space>:38:1: note: expanded from here > 38 | __compiletime_assert_1044 > | ^ >>> drivers/net/wireless/intel/iwlwifi/mvm/d3.c:2148:2: error: call to '__compiletime_assert_1043' declared with 'error' attribute: BUILD_BUG_ON failed: conf->keylen < WLAN_KEY_LEN_CCMP > 2148 | BUILD_BUG_ON(conf->keylen < WLAN_KEY_LEN_CCMP); > | ^ > include/linux/build_bug.h:50:2: note: expanded from macro 'BUILD_BUG_ON' > 50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition) > | ^ > include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG' > 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) > | ^ > include/linux/compiler_types.h:510:2: note: expanded from macro 'compiletime_assert' > 510 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) > | ^ > include/linux/compiler_types.h:498:2: note: expanded from macro '_compiletime_assert' > 498 | __compiletime_assert(condition, msg, prefix, suffix) > | ^ > include/linux/compiler_types.h:491:4: note: expanded from macro '__compiletime_assert' > 491 | prefix ## suffix(); \ > | ^ > <scratch space>:34:1: note: expanded from here > 34 | __compiletime_assert_1043 > | ^ > 5 warnings and 2 errors generated. > > > vim +2149 drivers/net/wireless/intel/iwlwifi/mvm/d3.c > > 2134 > 2135 static bool iwl_mvm_gtk_rekey(struct iwl_wowlan_status_data *status, > 2136 struct ieee80211_vif *vif, > 2137 struct iwl_mvm *mvm, u32 gtk_cipher) > 2138 { > 2139 int i, j; > 2140 struct ieee80211_key_conf *key; > 2141 DEFINE_FLEX(struct ieee80211_key_conf, conf, key, keylen, > 2142 WOWLAN_KEY_MAX_SIZE); > 2143 int link_id = vif->active_links ? __ffs(vif->active_links) : -1; Holy molly guaca-guaca... swapping the above two lines fixes the issue: diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c index 581455ab5e6d..764580cf6c58 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c @@ -2138,9 +2138,8 @@ static bool iwl_mvm_gtk_rekey(struct iwl_wowlan_status_data *status, { int i, j; struct ieee80211_key_conf *key; - DEFINE_FLEX(struct ieee80211_key_conf, conf, key, keylen, - WOWLAN_KEY_MAX_SIZE); int link_id = vif->active_links ? __ffs(vif->active_links) : -1; + DEFINE_FLEX(struct ieee80211_key_conf, conf, key, keylen, WOWLAN_KEY_MAX_SIZE); conf->cipher = gtk_cipher; This is the first time I've seen this compiler behavior when building DEFINE_FLEX() changes... -- Gustavo > 2144 > 2145 conf->cipher = gtk_cipher; > 2146 > 2147 BUILD_BUG_ON(WLAN_KEY_LEN_CCMP != WLAN_KEY_LEN_GCMP); >> 2148 BUILD_BUG_ON(conf->keylen < WLAN_KEY_LEN_CCMP); >> 2149 BUILD_BUG_ON(conf->keylen < WLAN_KEY_LEN_GCMP_256); > 2150 BUILD_BUG_ON(conf->keylen < WLAN_KEY_LEN_TKIP); > 2151 BUILD_BUG_ON(conf->keylen < sizeof(status->gtk[0].key)); > 2152 > 2153 switch (gtk_cipher) { > 2154 case WLAN_CIPHER_SUITE_CCMP: > 2155 case WLAN_CIPHER_SUITE_GCMP: > 2156 conf->keylen = WLAN_KEY_LEN_CCMP; > 2157 break; > 2158 case WLAN_CIPHER_SUITE_GCMP_256: > 2159 conf->keylen = WLAN_KEY_LEN_GCMP_256; > 2160 break; > 2161 case WLAN_CIPHER_SUITE_TKIP: > 2162 conf->keylen = WLAN_KEY_LEN_TKIP; > 2163 break; > 2164 default: > 2165 WARN_ON(1); > 2166 } > 2167 > 2168 for (i = 0; i < ARRAY_SIZE(status->gtk); i++) { > 2169 if (!status->gtk[i].len) > 2170 continue; > 2171 > 2172 conf->keyidx = status->gtk[i].id; > 2173 IWL_DEBUG_WOWLAN(mvm, > 2174 "Received from FW GTK cipher %d, key index %d\n", > 2175 conf->cipher, conf->keyidx); > 2176 memcpy(conf->key, status->gtk[i].key, > 2177 sizeof(status->gtk[i].key)); > 2178 > 2179 key = ieee80211_gtk_rekey_add(vif, conf, link_id); > 2180 if (IS_ERR(key)) > 2181 return false; > 2182 > 2183 for (j = 0; j < ARRAY_SIZE(status->gtk_seq); j++) { > 2184 if (!status->gtk_seq[j].valid || > 2185 status->gtk_seq[j].key_id != key->keyidx) > 2186 continue; > 2187 iwl_mvm_set_key_rx_seq_idx(key, status, j); > 2188 break; > 2189 } > 2190 WARN_ON(j == ARRAY_SIZE(status->gtk_seq)); > 2191 } > 2192 > 2193 return true; > 2194 } > 2195 >
Powered by blists - more mailing lists