:::::: :::::: Manual check reason: "low confidence bisect report" :::::: Manual check reason: "low confidence static check warning: drivers/net/wireless/ath/ath11k/mac.c:8412:12: warning: use of uninitialized value 'ret' [CWE-457] [-Wanalyzer-use-of-uninitialized-value]" ::::::
BCC: [email protected] CC: [email protected] CC: [email protected] TO: Baochen Qiang <[email protected]> CC: Kalle Valo <[email protected]> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: b96fbd602d35739b5cdb49baa02048f2c41fdab1 commit: 3a5627b94222c3abc7e65486e2d2c0cc0a35c140 ath11k: Implement remain-on-channel support date: 4 months ago :::::: branch date: 5 hours ago :::::: commit date: 4 months ago config: arm-randconfig-c002-20220908 (https://download.01.org/0day-ci/archive/20220911/[email protected]/config) compiler: arm-linux-gnueabi-gcc (GCC) 12.1.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3a5627b94222c3abc7e65486e2d2c0cc0a35c140 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 3a5627b94222c3abc7e65486e2d2c0cc0a35c140 # save the config file COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross ARCH=arm KBUILD_USERCFLAGS='-fanalyzer -Wno-error' If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <[email protected]> gcc_analyzer warnings: (new ones prefixed by >>) drivers/net/wireless/ath/ath11k/mac.c: In function 'ath11k_mac_op_remain_on_channel': >> drivers/net/wireless/ath/ath11k/mac.c:8412:12: warning: use of uninitialized >> value 'ret' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 8412 | if (ret) | ^ 'ath11k_mac_op_remain_on_channel': events 1-4 | | 8386 | int ret; | | ^~~ | | | | | (1) region created on stack here |...... | 8392 | switch (ar->scan.state) { | | ~~~~~~ | | | | | (2) following 'default:' branch... |...... | 8410 | spin_unlock_bh(&ar->data_lock); | | ~~~~~~~~~~~~~~ | | | | | (3) ...to here | 8411 | | 8412 | if (ret) | | ~ | | | | | (4) use of uninitialized value 'ret' here | vim +/ret +8412 drivers/net/wireless/ath/ath11k/mac.c 3a5627b94222c3 Baochen Qiang 2022-05-09 8376 3a5627b94222c3 Baochen Qiang 2022-05-09 8377 static int ath11k_mac_op_remain_on_channel(struct ieee80211_hw *hw, 3a5627b94222c3 Baochen Qiang 2022-05-09 8378 struct ieee80211_vif *vif, 3a5627b94222c3 Baochen Qiang 2022-05-09 8379 struct ieee80211_channel *chan, 3a5627b94222c3 Baochen Qiang 2022-05-09 8380 int duration, 3a5627b94222c3 Baochen Qiang 2022-05-09 8381 enum ieee80211_roc_type type) 3a5627b94222c3 Baochen Qiang 2022-05-09 8382 { 3a5627b94222c3 Baochen Qiang 2022-05-09 8383 struct ath11k *ar = hw->priv; 3a5627b94222c3 Baochen Qiang 2022-05-09 8384 struct ath11k_vif *arvif = (void *)vif->drv_priv; 3a5627b94222c3 Baochen Qiang 2022-05-09 8385 struct scan_req_params arg; 3a5627b94222c3 Baochen Qiang 2022-05-09 8386 int ret; 3a5627b94222c3 Baochen Qiang 2022-05-09 8387 u32 scan_time_msec; 3a5627b94222c3 Baochen Qiang 2022-05-09 8388 3a5627b94222c3 Baochen Qiang 2022-05-09 8389 mutex_lock(&ar->conf_mutex); 3a5627b94222c3 Baochen Qiang 2022-05-09 8390 3a5627b94222c3 Baochen Qiang 2022-05-09 8391 spin_lock_bh(&ar->data_lock); 3a5627b94222c3 Baochen Qiang 2022-05-09 8392 switch (ar->scan.state) { 3a5627b94222c3 Baochen Qiang 2022-05-09 8393 case ATH11K_SCAN_IDLE: 3a5627b94222c3 Baochen Qiang 2022-05-09 8394 reinit_completion(&ar->scan.started); 3a5627b94222c3 Baochen Qiang 2022-05-09 8395 reinit_completion(&ar->scan.completed); 3a5627b94222c3 Baochen Qiang 2022-05-09 8396 reinit_completion(&ar->scan.on_channel); 3a5627b94222c3 Baochen Qiang 2022-05-09 8397 ar->scan.state = ATH11K_SCAN_STARTING; 3a5627b94222c3 Baochen Qiang 2022-05-09 8398 ar->scan.is_roc = true; 3a5627b94222c3 Baochen Qiang 2022-05-09 8399 ar->scan.vdev_id = arvif->vdev_id; 3a5627b94222c3 Baochen Qiang 2022-05-09 8400 ar->scan.roc_freq = chan->center_freq; 3a5627b94222c3 Baochen Qiang 2022-05-09 8401 ar->scan.roc_notify = true; 3a5627b94222c3 Baochen Qiang 2022-05-09 8402 ret = 0; 3a5627b94222c3 Baochen Qiang 2022-05-09 8403 break; 3a5627b94222c3 Baochen Qiang 2022-05-09 8404 case ATH11K_SCAN_STARTING: 3a5627b94222c3 Baochen Qiang 2022-05-09 8405 case ATH11K_SCAN_RUNNING: 3a5627b94222c3 Baochen Qiang 2022-05-09 8406 case ATH11K_SCAN_ABORTING: 3a5627b94222c3 Baochen Qiang 2022-05-09 8407 ret = -EBUSY; 3a5627b94222c3 Baochen Qiang 2022-05-09 8408 break; 3a5627b94222c3 Baochen Qiang 2022-05-09 8409 } 3a5627b94222c3 Baochen Qiang 2022-05-09 8410 spin_unlock_bh(&ar->data_lock); 3a5627b94222c3 Baochen Qiang 2022-05-09 8411 3a5627b94222c3 Baochen Qiang 2022-05-09 @8412 if (ret) 3a5627b94222c3 Baochen Qiang 2022-05-09 8413 goto exit; 3a5627b94222c3 Baochen Qiang 2022-05-09 8414 3a5627b94222c3 Baochen Qiang 2022-05-09 8415 scan_time_msec = ar->hw->wiphy->max_remain_on_channel_duration * 2; 3a5627b94222c3 Baochen Qiang 2022-05-09 8416 3a5627b94222c3 Baochen Qiang 2022-05-09 8417 memset(&arg, 0, sizeof(arg)); 3a5627b94222c3 Baochen Qiang 2022-05-09 8418 ath11k_wmi_start_scan_init(ar, &arg); 3a5627b94222c3 Baochen Qiang 2022-05-09 8419 arg.num_chan = 1; 3a5627b94222c3 Baochen Qiang 2022-05-09 8420 arg.chan_list = kcalloc(arg.num_chan, sizeof(*arg.chan_list), 3a5627b94222c3 Baochen Qiang 2022-05-09 8421 GFP_KERNEL); 3a5627b94222c3 Baochen Qiang 2022-05-09 8422 if (!arg.chan_list) { 3a5627b94222c3 Baochen Qiang 2022-05-09 8423 ret = -ENOMEM; 3a5627b94222c3 Baochen Qiang 2022-05-09 8424 goto exit; 3a5627b94222c3 Baochen Qiang 2022-05-09 8425 } 3a5627b94222c3 Baochen Qiang 2022-05-09 8426 3a5627b94222c3 Baochen Qiang 2022-05-09 8427 arg.vdev_id = arvif->vdev_id; 3a5627b94222c3 Baochen Qiang 2022-05-09 8428 arg.scan_id = ATH11K_SCAN_ID; 3a5627b94222c3 Baochen Qiang 2022-05-09 8429 arg.chan_list[0] = chan->center_freq; 3a5627b94222c3 Baochen Qiang 2022-05-09 8430 arg.dwell_time_active = scan_time_msec; 3a5627b94222c3 Baochen Qiang 2022-05-09 8431 arg.dwell_time_passive = scan_time_msec; 3a5627b94222c3 Baochen Qiang 2022-05-09 8432 arg.max_scan_time = scan_time_msec; 3a5627b94222c3 Baochen Qiang 2022-05-09 8433 arg.scan_flags |= WMI_SCAN_FLAG_PASSIVE; 3a5627b94222c3 Baochen Qiang 2022-05-09 8434 arg.scan_flags |= WMI_SCAN_FILTER_PROBE_REQ; 3a5627b94222c3 Baochen Qiang 2022-05-09 8435 arg.burst_duration = duration; 3a5627b94222c3 Baochen Qiang 2022-05-09 8436 3a5627b94222c3 Baochen Qiang 2022-05-09 8437 ret = ath11k_start_scan(ar, &arg); 3a5627b94222c3 Baochen Qiang 2022-05-09 8438 if (ret) { 3a5627b94222c3 Baochen Qiang 2022-05-09 8439 ath11k_warn(ar->ab, "failed to start roc scan: %d\n", ret); 3a5627b94222c3 Baochen Qiang 2022-05-09 8440 3a5627b94222c3 Baochen Qiang 2022-05-09 8441 spin_lock_bh(&ar->data_lock); 3a5627b94222c3 Baochen Qiang 2022-05-09 8442 ar->scan.state = ATH11K_SCAN_IDLE; 3a5627b94222c3 Baochen Qiang 2022-05-09 8443 spin_unlock_bh(&ar->data_lock); 3a5627b94222c3 Baochen Qiang 2022-05-09 8444 goto free_chan_list; 3a5627b94222c3 Baochen Qiang 2022-05-09 8445 } 3a5627b94222c3 Baochen Qiang 2022-05-09 8446 3a5627b94222c3 Baochen Qiang 2022-05-09 8447 ret = wait_for_completion_timeout(&ar->scan.on_channel, 3 * HZ); 3a5627b94222c3 Baochen Qiang 2022-05-09 8448 if (ret == 0) { 3a5627b94222c3 Baochen Qiang 2022-05-09 8449 ath11k_warn(ar->ab, "failed to switch to channel for roc scan\n"); 3a5627b94222c3 Baochen Qiang 2022-05-09 8450 ret = ath11k_scan_stop(ar); 3a5627b94222c3 Baochen Qiang 2022-05-09 8451 if (ret) 3a5627b94222c3 Baochen Qiang 2022-05-09 8452 ath11k_warn(ar->ab, "failed to stop scan: %d\n", ret); 3a5627b94222c3 Baochen Qiang 2022-05-09 8453 ret = -ETIMEDOUT; 3a5627b94222c3 Baochen Qiang 2022-05-09 8454 goto free_chan_list; 3a5627b94222c3 Baochen Qiang 2022-05-09 8455 } 3a5627b94222c3 Baochen Qiang 2022-05-09 8456 3a5627b94222c3 Baochen Qiang 2022-05-09 8457 ieee80211_queue_delayed_work(ar->hw, &ar->scan.timeout, 3a5627b94222c3 Baochen Qiang 2022-05-09 8458 msecs_to_jiffies(duration)); 3a5627b94222c3 Baochen Qiang 2022-05-09 8459 3a5627b94222c3 Baochen Qiang 2022-05-09 8460 ret = 0; 3a5627b94222c3 Baochen Qiang 2022-05-09 8461 3a5627b94222c3 Baochen Qiang 2022-05-09 8462 free_chan_list: 3a5627b94222c3 Baochen Qiang 2022-05-09 8463 kfree(arg.chan_list); 3a5627b94222c3 Baochen Qiang 2022-05-09 8464 exit: 3a5627b94222c3 Baochen Qiang 2022-05-09 8465 mutex_unlock(&ar->conf_mutex); 3a5627b94222c3 Baochen Qiang 2022-05-09 8466 return ret; 3a5627b94222c3 Baochen Qiang 2022-05-09 8467 } 3a5627b94222c3 Baochen Qiang 2022-05-09 8468 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
