tree:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
linux-4.19.y
head: e864f43593ccf9180c61738abdf1c1dde091367d
commit: 2c00f819a72150708b9f9e0a2b031a8fdafa7b15 [7521/9999] iwlwifi: Don't ignore the
cap field upon mcc update
config: i386-randconfig-s001-20200812 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.2-168-g9554805c-dirty
git checkout 2c00f819a72150708b9f9e0a2b031a8fdafa7b15
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c: note: in included file (through
drivers/net/wireless/intel/iwlwifi/mvm/..//fw/img.h,
drivers/net/wireless/intel/iwlwifi/mvm/..//iwl-trans.h, ...):
drivers/net/wireless/intel/iwlwifi/mvm/..//fw/file.h:286:19: sparse: sparse: mixed
bitwiseness
drivers/net/wireless/intel/iwlwifi/mvm/..//fw/file.h:405:19: sparse: sparse: mixed
bitwiseness
> drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c:321:39: sparse:
sparse: cast to restricted __le16
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c: In function
'__iwl_mvm_assign_vif_chanctx':
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c:3754:6: warning: this statement may
fall through [-Wimplicit-fallthrough=]
3754 | if (switching_chanctx) {
| ^
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c:3758:2: note: here
3758 | case NL80211_IFTYPE_ADHOC:
| ^~~~
In file included from drivers/net/wireless/intel/iwlwifi/mvm/../iwl-trans.h:76,
from drivers/net/wireless/intel/iwlwifi/mvm/../iwl-devtrace.h:32,
from drivers/net/wireless/intel/iwlwifi/mvm/../iwl-io.h:32,
from drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c:82:
At top level:
drivers/net/wireless/intel/iwlwifi/mvm/../iwl-config.h:472:36: warning:
'iwl_csr_v2' defined but not used [-Wunused-const-variable=]
472 | static const struct iwl_csr_params iwl_csr_v2 = {
| ^~~~~~~~~~
drivers/net/wireless/intel/iwlwifi/mvm/../iwl-config.h:457:36: warning:
'iwl_csr_v1' defined but not used [-Wunused-const-variable=]
457 | static const struct iwl_csr_params iwl_csr_v1 = {
| ^~~~~~~~~~
vim +321 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
287
288 struct ieee80211_regdomain *iwl_mvm_get_regdomain(struct wiphy *wiphy,
289 const char *alpha2,
290 enum iwl_mcc_source src_id,
291 bool *changed)
292 {
293 struct ieee80211_regdomain *regd = NULL;
294 struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy);
295 struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw);
296 struct iwl_mcc_update_resp *resp;
297
298 IWL_DEBUG_LAR(mvm, "Getting regdomain data for %s from FW\n", alpha2);
299
300 lockdep_assert_held(&mvm->mutex);
301
302 resp = iwl_mvm_update_mcc(mvm, alpha2, src_id);
303 if (IS_ERR_OR_NULL(resp)) {
304 IWL_DEBUG_LAR(mvm, "Could not get update from FW %d\n",
305 PTR_ERR_OR_ZERO(resp));
306 goto out;
307 }
308
309 if (changed) {
310 u32 status = le32_to_cpu(resp->status);
311
312 *changed = (status == MCC_RESP_NEW_CHAN_PROFILE ||
313 status == MCC_RESP_ILLEGAL);
314 }
315
316 regd = iwl_parse_nvm_mcc_info(mvm->trans->dev, mvm->cfg,
317 __le32_to_cpu(resp->n_channels),
318 resp->channels,
319 __le16_to_cpu(resp->mcc),
320 __le16_to_cpu(resp->geo_info),
321 __le16_to_cpu(resp->cap));
322 /* Store
the return source id */
323 src_id = resp->source_id;
324 kfree(resp);
325 if (IS_ERR_OR_NULL(regd)) {
326 IWL_DEBUG_LAR(mvm, "Could not get parse update from FW %d\n",
327 PTR_ERR_OR_ZERO(regd));
328 goto out;
329 }
330
331 IWL_DEBUG_LAR(mvm, "setting alpha2 from FW to %s (0x%x, 0x%x)
src=%d\n",
332 regd->alpha2, regd->alpha2[0], regd->alpha2[1], src_id);
333 mvm->lar_regdom_set = true;
334 mvm->mcc_src = src_id;
335
336 out:
337 return regd;
338 }
339
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org