CC: llvm(a)lists.linux.dev CC: kbuild-all(a)lists.01.org BCC: lkp(a)intel.com CC: Linux Memory Management List TO: Johannes Berg tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 18ecd30af1a8402c162cca1bd58771c0e5be7815 commit: 16d0364c722a246933ec4b39cbd5d17d7d4fe758 [11408/13468] mac80211: remove useless bssid copy :::::: branch date: 28 hours ago :::::: commit date: 5 days ago config: riscv-randconfig-c006-20220519 (https://download.01.org/0day-ci/archive/20220522/202205220128.bwNmsjhd-lkp(a)intel.com/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project e00cbbec06c08dc616a0d52a20f678b8fbd4e304) 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 # install riscv cross compiling tool for clang build # apt-get install binutils-riscv64-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=16d0364c722a246933ec4b39cbd5d17d7d4fe758 git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next master git checkout 16d0364c722a246933ec4b39cbd5d17d7d4fe758 # save the config file COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv clang-analyzer If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot clang-analyzer warnings: (new ones prefixed by >>) net/mac80211/mlme.c:3572:2: note: Taking true branch if (elems->he_operation && !(ifmgd->flags & IEEE80211_STA_DISABLE_HE) && ^ net/mac80211/mlme.c:3581:7: note: Assuming field 'rsnx' is null if (elems->rsnx && elems->rsnx_len && ^~~~~~~~~~~ net/mac80211/mlme.c:3581:19: note: Left side of '&&' is false if (elems->rsnx && elems->rsnx_len && ^ net/mac80211/mlme.c:3589:14: note: Calling 'ieee80211_recalc_twt_req' changed |= ieee80211_recalc_twt_req(sdata, sta, elems); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/mlme.c:3343:13: note: Calling 'ieee80211_twt_req_supported' bool twt = ieee80211_twt_req_supported(sta, elems); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/mlme.c:3329:6: note: Assuming field 'ext_capab_len' is >= 10 if (elems->ext_capab_len < 10) ^~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/mlme.c:3329:2: note: Taking false branch if (elems->ext_capab_len < 10) ^ net/mac80211/mlme.c:3332:8: note: Array access (via field 'ext_capab') results in a null pointer dereference if (!(elems->ext_capab[9] & WLAN_EXT_CAPA10_TWT_RESPONDER_SUPPORT)) ^ ~~~~~~~~~ net/mac80211/mlme.c:4259:5: warning: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memcpy(&bss_conf->p2p_noa_attr, &noa, sizeof(noa)); ^ include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy' #define memcpy(p, q, s) __fortify_memcpy_chk(p, q, s, \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:362:2: note: expanded from macro '__fortify_memcpy_chk' __underlying_##op(p, q, __fortify_size); \ ^~~~~~~~~~~~~~~~~ note: expanded from here include/linux/fortify-string.h:45:29: note: expanded from macro '__underlying_memcpy' #define __underlying_memcpy __builtin_memcpy ^~~~~~~~~~~~~~~~ net/mac80211/mlme.c:4259:5: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 memcpy(&bss_conf->p2p_noa_attr, &noa, sizeof(noa)); ^ include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy' #define memcpy(p, q, s) __fortify_memcpy_chk(p, q, s, \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:362:2: note: expanded from macro '__fortify_memcpy_chk' __underlying_##op(p, q, __fortify_size); \ ^~~~~~~~~~~~~~~~~ note: expanded from here include/linux/fortify-string.h:45:29: note: expanded from macro '__underlying_memcpy' #define __underlying_memcpy __builtin_memcpy ^~~~~~~~~~~~~~~~ net/mac80211/mlme.c:4270:4: warning: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memset(&bss_conf->p2p_noa_attr, 0, sizeof(bss_conf->p2p_noa_attr)); ^ include/linux/fortify-string.h:272:25: note: expanded from macro 'memset' #define memset(p, c, s) __fortify_memset_chk(p, c, s, \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:265:2: note: expanded from macro '__fortify_memset_chk' __underlying_memset(p, c, __fortify_size); \ ^~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:47:29: note: expanded from macro '__underlying_memset' #define __underlying_memset __builtin_memset ^~~~~~~~~~~~~~~~ net/mac80211/mlme.c:4270:4: note: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 memset(&bss_conf->p2p_noa_attr, 0, sizeof(bss_conf->p2p_noa_attr)); ^ include/linux/fortify-string.h:272:25: note: expanded from macro 'memset' #define memset(p, c, s) __fortify_memset_chk(p, c, s, \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:265:2: note: expanded from macro '__fortify_memset_chk' __underlying_memset(p, c, __fortify_size); \ ^~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:47:29: note: expanded from macro '__underlying_memset' #define __underlying_memset __builtin_memset ^~~~~~~~~~~~~~~~ net/mac80211/mlme.c:4707:4: warning: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memcpy(bssid, ifmgd->auth_data->bss->bssid, ETH_ALEN); ^ include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy' #define memcpy(p, q, s) __fortify_memcpy_chk(p, q, s, \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:362:2: note: expanded from macro '__fortify_memcpy_chk' __underlying_##op(p, q, __fortify_size); \ ^~~~~~~~~~~~~~~~~ note: expanded from here include/linux/fortify-string.h:45:29: note: expanded from macro '__underlying_memcpy' #define __underlying_memcpy __builtin_memcpy ^~~~~~~~~~~~~~~~ net/mac80211/mlme.c:4707:4: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 memcpy(bssid, ifmgd->auth_data->bss->bssid, ETH_ALEN); ^ include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy' #define memcpy(p, q, s) __fortify_memcpy_chk(p, q, s, \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:362:2: note: expanded from macro '__fortify_memcpy_chk' __underlying_##op(p, q, __fortify_size); \ ^~~~~~~~~~~~~~~~~ note: expanded from here include/linux/fortify-string.h:45:29: note: expanded from macro '__underlying_memcpy' #define __underlying_memcpy __builtin_memcpy ^~~~~~~~~~~~~~~~ >> net/mac80211/mlme.c:4737:7: warning: Value stored to 'bssid' during its initialization is never read [clang-analyzer-deadcode.DeadStores] u8 *bssid = ifmgd->bssid; ^~~~~ ~~~~~~~~~~~~ net/mac80211/mlme.c:4737:7: note: Value stored to 'bssid' during its initialization is never read u8 *bssid = ifmgd->bssid; ^~~~~ ~~~~~~~~~~~~ net/mac80211/mlme.c:4919:3: warning: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memcpy(bssid, ifmgd->bssid, ETH_ALEN); ^ include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy' #define memcpy(p, q, s) __fortify_memcpy_chk(p, q, s, \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:362:2: note: expanded from macro '__fortify_memcpy_chk' __underlying_##op(p, q, __fortify_size); \ ^~~~~~~~~~~~~~~~~ note: expanded from here include/linux/fortify-string.h:45:29: note: expanded from macro '__underlying_memcpy' #define __underlying_memcpy __builtin_memcpy ^~~~~~~~~~~~~~~~ net/mac80211/mlme.c:4919:3: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 memcpy(bssid, ifmgd->bssid, ETH_ALEN); ^ include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy' #define memcpy(p, q, s) __fortify_memcpy_chk(p, q, s, \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:362:2: note: expanded from macro '__fortify_memcpy_chk' __underlying_##op(p, q, __fortify_size); \ ^~~~~~~~~~~~~~~~~ note: expanded from here include/linux/fortify-string.h:45:29: note: expanded from macro '__underlying_memcpy' #define __underlying_memcpy __builtin_memcpy ^~~~~~~~~~~~~~~~ net/mac80211/mlme.c:5400:5: warning: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memcpy(&bss_conf->tx_pwr_env[j], elems->tx_pwr_env[i], ^ include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy' #define memcpy(p, q, s) __fortify_memcpy_chk(p, q, s, \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:362:2: note: expanded from macro '__fortify_memcpy_chk' __underlying_##op(p, q, __fortify_size); \ ^~~~~~~~~~~~~~~~~ note: expanded from here include/linux/fortify-string.h:45:29: note: expanded from macro '__underlying_memcpy' #define __underlying_memcpy __builtin_memcpy ^~~~~~~~~~~~~~~~ net/mac80211/mlme.c:5400:5: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 memcpy(&bss_conf->tx_pwr_env[j], elems->tx_pwr_env[i], ^ include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy' #define memcpy(p, q, s) __fortify_memcpy_chk(p, q, s, \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:362:2: note: expanded from macro '__fortify_memcpy_chk' __underlying_##op(p, q, __fortify_size); \ ^~~~~~~~~~~~~~~~~ note: expanded from here include/linux/fortify-string.h:45:29: note: expanded from macro '__underlying_memcpy' #define __underlying_memcpy __builtin_memcpy ^~~~~~~~~~~~~~~~ net/mac80211/mlme.c:5642:3: warning: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memcpy(ifmgd->bssid, cbss->bssid, ETH_ALEN); ^ include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy' #define memcpy(p, q, s) __fortify_memcpy_chk(p, q, s, \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:362:2: note: expanded from macro '__fortify_memcpy_chk' __underlying_##op(p, q, __fortify_size); \ ^~~~~~~~~~~~~~~~~ note: expanded from here include/linux/fortify-string.h:45:29: note: expanded from macro '__underlying_memcpy' #define __underlying_memcpy __builtin_memcpy ^~~~~~~~~~~~~~~~ net/mac80211/mlme.c:5642:3: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 memcpy(ifmgd->bssid, cbss->bssid, ETH_ALEN); ^ include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy' #define memcpy(p, q, s) __fortify_memcpy_chk(p, q, s, \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:362:2: note: expanded from macro '__fortify_memcpy_chk' __underlying_##op(p, q, __fortify_size); \ ^~~~~~~~~~~~~~~~~ note: expanded from here include/linux/fortify-string.h:45:29: note: expanded from macro '__underlying_memcpy' #define __underlying_memcpy __builtin_memcpy ^~~~~~~~~~~~~~~~ net/mac80211/mlme.c:5772:3: warning: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memcpy(auth_data->data, req->auth_data + 4, ^ include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy' #define memcpy(p, q, s) __fortify_memcpy_chk(p, q, s, \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:362:2: note: expanded from macro '__fortify_memcpy_chk' __underlying_##op(p, q, __fortify_size); \ ^~~~~~~~~~~~~~~~~ note: expanded from here include/linux/fortify-string.h:45:29: note: expanded from macro '__underlying_memcpy' #define __underlying_memcpy __builtin_memcpy ^~~~~~~~~~~~~~~~ net/mac80211/mlme.c:5772:3: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 memcpy(auth_data->data, req->auth_data + 4, ^ include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy' vim +/bssid +4737 net/mac80211/mlme.c 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4648 1fa57d017366fb net/mac80211/mlme.c Johannes Berg 2010-06-10 4649 void ieee80211_sta_work(struct ieee80211_sub_if_data *sdata) f0706e828e96d0 net/mac80211/ieee80211_sta.c Jiri Benc 2007-05-05 4650 { 9c6bd79011b14a net/mac80211/mlme.c Johannes Berg 2008-09-11 4651 struct ieee80211_local *local = sdata->local; 1fa57d017366fb net/mac80211/mlme.c Johannes Berg 2010-06-10 4652 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; 9c6bd79011b14a net/mac80211/mlme.c Johannes Berg 2008-09-11 4653 8d61ffa5e01c5f net/mac80211/mlme.c Johannes Berg 2013-05-10 4654 sdata_lock(sdata); 77fdaa12cea26c net/mac80211/mlme.c Johannes Berg 2009-07-07 4655 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4656 if (ifmgd->status_received) { 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4657 __le16 fc = ifmgd->status_fc; 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4658 bool status_acked = ifmgd->status_acked; 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4659 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4660 ifmgd->status_received = false; 46cad4b7a131a2 net/mac80211/mlme.c Johannes Berg 2015-08-15 4661 if (ifmgd->auth_data && ieee80211_is_auth(fc)) { 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4662 if (status_acked) { 407879b690ba3a net/mac80211/mlme.c Ilan Peer 2018-04-20 4663 if (ifmgd->auth_data->algorithm == 407879b690ba3a net/mac80211/mlme.c Ilan Peer 2018-04-20 4664 WLAN_AUTH_SAE) 407879b690ba3a net/mac80211/mlme.c Ilan Peer 2018-04-20 4665 ifmgd->auth_data->timeout = 407879b690ba3a net/mac80211/mlme.c Ilan Peer 2018-04-20 4666 jiffies + 407879b690ba3a net/mac80211/mlme.c Ilan Peer 2018-04-20 4667 IEEE80211_AUTH_TIMEOUT_SAE; 407879b690ba3a net/mac80211/mlme.c Ilan Peer 2018-04-20 4668 else 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4669 ifmgd->auth_data->timeout = 407879b690ba3a net/mac80211/mlme.c Ilan Peer 2018-04-20 4670 jiffies + 407879b690ba3a net/mac80211/mlme.c Ilan Peer 2018-04-20 4671 IEEE80211_AUTH_TIMEOUT_SHORT; 8d61ffa5e01c5f net/mac80211/mlme.c Johannes Berg 2013-05-10 4672 run_again(sdata, ifmgd->auth_data->timeout); 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4673 } else { 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4674 ifmgd->auth_data->timeout = jiffies - 1; 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4675 } 89afe614c0c737 net/mac80211/mlme.c Johannes Berg 2013-02-13 4676 ifmgd->auth_data->timeout_started = true; 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4677 } else if (ifmgd->assoc_data && 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4678 (ieee80211_is_assoc_req(fc) || 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4679 ieee80211_is_reassoc_req(fc))) { 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4680 if (status_acked) { 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4681 ifmgd->assoc_data->timeout = 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4682 jiffies + IEEE80211_ASSOC_TIMEOUT_SHORT; 8d61ffa5e01c5f net/mac80211/mlme.c Johannes Berg 2013-05-10 4683 run_again(sdata, ifmgd->assoc_data->timeout); 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4684 } else { 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4685 ifmgd->assoc_data->timeout = jiffies - 1; 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4686 } 89afe614c0c737 net/mac80211/mlme.c Johannes Berg 2013-02-13 4687 ifmgd->assoc_data->timeout_started = true; 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4688 } 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4689 } 1672c0e31917f4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4690 89afe614c0c737 net/mac80211/mlme.c Johannes Berg 2013-02-13 4691 if (ifmgd->auth_data && ifmgd->auth_data->timeout_started && 66e67e41890844 net/mac80211/mlme.c Johannes Berg 2012-01-20 4692 time_after(jiffies, ifmgd->auth_data->timeout)) { 94d9864cc86f57 net/mac80211/mlme.c Johannes Berg 2022-02-24 4693 if (ifmgd->auth_data->done || ifmgd->auth_data->waiting) { 66e67e41890844 net/mac80211/mlme.c Johannes Berg 2012-01-20 4694 /* 94d9864cc86f57 net/mac80211/mlme.c Johannes Berg 2022-02-24 4695 * ok ... we waited for assoc or continuation but 94d9864cc86f57 net/mac80211/mlme.c Johannes Berg 2022-02-24 4696 * userspace didn't do it, so kill the auth data 66e67e41890844 net/mac80211/mlme.c Johannes Berg 2012-01-20 4697 */ 66e67e41890844 net/mac80211/mlme.c Johannes Berg 2012-01-20 4698 ieee80211_destroy_auth_data(sdata, false); 46cad4b7a131a2 net/mac80211/mlme.c Johannes Berg 2015-08-15 4699 } else if (ieee80211_auth(sdata)) { 66e67e41890844 net/mac80211/mlme.c Johannes Berg 2012-01-20 4700 u8 bssid[ETH_ALEN]; a9409093d23c82 net/mac80211/mlme.c Emmanuel Grumbach 2015-03-16 4701 struct ieee80211_event event = { a9409093d23c82 net/mac80211/mlme.c Emmanuel Grumbach 2015-03-16 4702 .type = MLME_EVENT, a9409093d23c82 net/mac80211/mlme.c Emmanuel Grumbach 2015-03-16 4703 .u.mlme.data = AUTH_EVENT, a9409093d23c82 net/mac80211/mlme.c Emmanuel Grumbach 2015-03-16 4704 .u.mlme.status = MLME_TIMEOUT, a9409093d23c82 net/mac80211/mlme.c Emmanuel Grumbach 2015-03-16 4705 }; 66e67e41890844 net/mac80211/mlme.c Johannes Berg 2012-01-20 4706 66e67e41890844 net/mac80211/mlme.c Johannes Berg 2012-01-20 4707 memcpy(bssid, ifmgd->auth_data->bss->bssid, ETH_ALEN); 66e67e41890844 net/mac80211/mlme.c Johannes Berg 2012-01-20 4708 66e67e41890844 net/mac80211/mlme.c Johannes Berg 2012-01-20 4709 ieee80211_destroy_auth_data(sdata, false); 66e67e41890844 net/mac80211/mlme.c Johannes Berg 2012-01-20 4710 6ff57cf88807dd net/mac80211/mlme.c Johannes Berg 2013-05-16 4711 cfg80211_auth_timeout(sdata->dev, bssid); a9409093d23c82 net/mac80211/mlme.c Emmanuel Grumbach 2015-03-16 4712 drv_event_callback(sdata->local, sdata, &event); 66e67e41890844 net/mac80211/mlme.c Johannes Berg 2012-01-20 4713 } 89afe614c0c737 net/mac80211/mlme.c Johannes Berg 2013-02-13 4714 } else if (ifmgd->auth_data && ifmgd->auth_data->timeout_started) 8d61ffa5e01c5f net/mac80211/mlme.c Johannes Berg 2013-05-10 4715 run_again(sdata, ifmgd->auth_data->timeout); 66e67e41890844 net/mac80211/mlme.c Johannes Berg 2012-01-20 4716 89afe614c0c737 net/mac80211/mlme.c Johannes Berg 2013-02-13 4717 if (ifmgd->assoc_data && ifmgd->assoc_data->timeout_started && 66e67e41890844 net/mac80211/mlme.c Johannes Berg 2012-01-20 4718 time_after(jiffies, ifmgd->assoc_data->timeout)) { 989c6505cdda58 net/mac80211/mlme.c Alexander Bondar 2013-05-16 4719 if ((ifmgd->assoc_data->need_beacon && !ifmgd->have_beacon) || 66e67e41890844 net/mac80211/mlme.c Johannes Berg 2012-01-20 4720 ieee80211_do_assoc(sdata)) { 959867fa55d0cb net/mac80211/mlme.c Johannes Berg 2013-06-19 4721 struct cfg80211_bss *bss = ifmgd->assoc_data->bss; d0d1a12f9cc665 net/mac80211/mlme.c Emmanuel Grumbach 2015-03-16 4722 struct ieee80211_event event = { d0d1a12f9cc665 net/mac80211/mlme.c Emmanuel Grumbach 2015-03-16 4723 .type = MLME_EVENT, d0d1a12f9cc665 net/mac80211/mlme.c Emmanuel Grumbach 2015-03-16 4724 .u.mlme.data = ASSOC_EVENT, d0d1a12f9cc665 net/mac80211/mlme.c Emmanuel Grumbach 2015-03-16 4725 .u.mlme.status = MLME_TIMEOUT, d0d1a12f9cc665 net/mac80211/mlme.c Emmanuel Grumbach 2015-03-16 4726 }; 66e67e41890844 net/mac80211/mlme.c Johannes Berg 2012-01-20 4727 e6f462df9acd2a net/mac80211/mlme.c Johannes Berg 2016-12-08 4728 ieee80211_destroy_assoc_data(sdata, false, false); 959867fa55d0cb net/mac80211/mlme.c Johannes Berg 2013-06-19 4729 cfg80211_assoc_timeout(sdata->dev, bss); d0d1a12f9cc665 net/mac80211/mlme.c Emmanuel Grumbach 2015-03-16 4730 drv_event_callback(sdata->local, sdata, &event); 66e67e41890844 net/mac80211/mlme.c Johannes Berg 2012-01-20 4731 } 89afe614c0c737 net/mac80211/mlme.c Johannes Berg 2013-02-13 4732 } else if (ifmgd->assoc_data && ifmgd->assoc_data->timeout_started) 8d61ffa5e01c5f net/mac80211/mlme.c Johannes Berg 2013-05-10 4733 run_again(sdata, ifmgd->assoc_data->timeout); 66e67e41890844 net/mac80211/mlme.c Johannes Berg 2012-01-20 4734 392b9ffb05b62f net/mac80211/mlme.c Stanislaw Gruszka 2013-08-27 4735 if (ifmgd->flags & IEEE80211_STA_CONNECTION_POLL && b291ba11181d46 net/mac80211/mlme.c Johannes Berg 2009-07-10 4736 ifmgd->associated) { 16d0364c722a24 net/mac80211/mlme.c Johannes Berg 2022-05-13 @4737 u8 *bssid = ifmgd->bssid; 72a8a3edd63099 net/mac80211/mlme.c Felix Fietkau 2010-11-23 4738 int max_tries; a43abf29396523 net/mac80211/mlme.c Maxim Levitsky 2009-07-31 4739 30686bf7f5b3c3 net/mac80211/mlme.c Johannes Berg 2015-06-02 4740 if (ieee80211_hw_check(&local->hw, REPORTS_TX_ACK_STATUS)) 180205bdb22b79 net/mac80211/mlme.c Ben Greear 2011-02-04 4741 max_tries = max_nullfunc_tries; 72a8a3edd63099 net/mac80211/mlme.c Felix Fietkau 2010-11-23 4742 else 180205bdb22b79 net/mac80211/mlme.c Ben Greear 2011-02-04 4743 max_tries = max_probe_tries; 72a8a3edd63099 net/mac80211/mlme.c Felix Fietkau 2010-11-23 4744 4e5ff37692df35 net/mac80211/mlme.c Felix Fietkau 2010-11-23 4745 /* ACK received for nullfunc probing frame */ 4e5ff37692df35 net/mac80211/mlme.c Felix Fietkau 2010-11-23 4746 if (!ifmgd->probe_send_count) 4e5ff37692df35 net/mac80211/mlme.c Felix Fietkau 2010-11-23 4747 ieee80211_reset_ap_probe(sdata); 04ac3c0ee2c773 net/mac80211/mlme.c Felix Fietkau 2010-12-02 4748 else if (ifmgd->nullfunc_failed) { 04ac3c0ee2c773 net/mac80211/mlme.c Felix Fietkau 2010-12-02 4749 if (ifmgd->probe_send_count < max_tries) { bdcbd8e0e3ffda net/mac80211/mlme.c Johannes Berg 2012-06-22 4750 mlme_dbg(sdata, bdcbd8e0e3ffda net/mac80211/mlme.c Johannes Berg 2012-06-22 4751 "No ack for nullfunc frame to AP %pM, try %d/%i\n", bdcbd8e0e3ffda net/mac80211/mlme.c Johannes Berg 2012-06-22 4752 bssid, ifmgd->probe_send_count, bdcbd8e0e3ffda net/mac80211/mlme.c Johannes Berg 2012-06-22 4753 max_tries); 04ac3c0ee2c773 net/mac80211/mlme.c Felix Fietkau 2010-12-02 4754 ieee80211_mgd_probe_ap_send(sdata); 04ac3c0ee2c773 net/mac80211/mlme.c Felix Fietkau 2010-12-02 4755 } else { bdcbd8e0e3ffda net/mac80211/mlme.c Johannes Berg 2012-06-22 4756 mlme_dbg(sdata, bdcbd8e0e3ffda net/mac80211/mlme.c Johannes Berg 2012-06-22 4757 "No ack for nullfunc frame to AP %pM, disconnecting.\n", bdcbd8e0e3ffda net/mac80211/mlme.c Johannes Berg 2012-06-22 4758 bssid); 53da4c45cadee4 net/mac80211/mlme.c Johannes Berg 2022-05-13 4759 ieee80211_sta_connection_lost(sdata, 6b684db1db0df4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4760 WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY, 6b684db1db0df4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4761 false); 04ac3c0ee2c773 net/mac80211/mlme.c Felix Fietkau 2010-12-02 4762 } 04ac3c0ee2c773 net/mac80211/mlme.c Felix Fietkau 2010-12-02 4763 } else if (time_is_after_jiffies(ifmgd->probe_timeout)) 8d61ffa5e01c5f net/mac80211/mlme.c Johannes Berg 2013-05-10 4764 run_again(sdata, ifmgd->probe_timeout); 30686bf7f5b3c3 net/mac80211/mlme.c Johannes Berg 2015-06-02 4765 else if (ieee80211_hw_check(&local->hw, REPORTS_TX_ACK_STATUS)) { bdcbd8e0e3ffda net/mac80211/mlme.c Johannes Berg 2012-06-22 4766 mlme_dbg(sdata, bdcbd8e0e3ffda net/mac80211/mlme.c Johannes Berg 2012-06-22 4767 "Failed to send nullfunc to AP %pM after %dms, disconnecting\n", 180205bdb22b79 net/mac80211/mlme.c Ben Greear 2011-02-04 4768 bssid, probe_wait_ms); 53da4c45cadee4 net/mac80211/mlme.c Johannes Berg 2022-05-13 4769 ieee80211_sta_connection_lost(sdata, 6b684db1db0df4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4770 WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY, false); 04ac3c0ee2c773 net/mac80211/mlme.c Felix Fietkau 2010-12-02 4771 } else if (ifmgd->probe_send_count < max_tries) { bdcbd8e0e3ffda net/mac80211/mlme.c Johannes Berg 2012-06-22 4772 mlme_dbg(sdata, bdcbd8e0e3ffda net/mac80211/mlme.c Johannes Berg 2012-06-22 4773 "No probe response from AP %pM after %dms, try %d/%i\n", 180205bdb22b79 net/mac80211/mlme.c Ben Greear 2011-02-04 4774 bssid, probe_wait_ms, bfc31df33b1625 net/mac80211/mlme.c Ben Greear 2011-01-14 4775 ifmgd->probe_send_count, max_tries); a43abf29396523 net/mac80211/mlme.c Maxim Levitsky 2009-07-31 4776 ieee80211_mgd_probe_ap_send(sdata); a43abf29396523 net/mac80211/mlme.c Maxim Levitsky 2009-07-31 4777 } else { b291ba11181d46 net/mac80211/mlme.c Johannes Berg 2009-07-10 4778 /* b291ba11181d46 net/mac80211/mlme.c Johannes Berg 2009-07-10 4779 * We actually lost the connection ... or did we? b291ba11181d46 net/mac80211/mlme.c Johannes Berg 2009-07-10 4780 * Let's make sure! b291ba11181d46 net/mac80211/mlme.c Johannes Berg 2009-07-10 4781 */ 89f774e6c41efd net/mac80211/mlme.c Johannes Berg 2016-01-25 4782 mlme_dbg(sdata, 89f774e6c41efd net/mac80211/mlme.c Johannes Berg 2016-01-25 4783 "No probe response from AP %pM after %dms, disconnecting.\n", 180205bdb22b79 net/mac80211/mlme.c Ben Greear 2011-02-04 4784 bssid, probe_wait_ms); 04ac3c0ee2c773 net/mac80211/mlme.c Felix Fietkau 2010-12-02 4785 53da4c45cadee4 net/mac80211/mlme.c Johannes Berg 2022-05-13 4786 ieee80211_sta_connection_lost(sdata, 6b684db1db0df4 net/mac80211/mlme.c Johannes Berg 2013-01-29 4787 WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY, false); b291ba11181d46 net/mac80211/mlme.c Johannes Berg 2009-07-10 4788 } b291ba11181d46 net/mac80211/mlme.c Johannes Berg 2009-07-10 4789 } b291ba11181d46 net/mac80211/mlme.c Johannes Berg 2009-07-10 4790 8d61ffa5e01c5f net/mac80211/mlme.c Johannes Berg 2013-05-10 4791 sdata_unlock(sdata); f0706e828e96d0 net/mac80211/ieee80211_sta.c Jiri Benc 2007-05-05 4792 } 9c6bd79011b14a net/mac80211/mlme.c Johannes Berg 2008-09-11 4793 -- 0-DAY CI Kernel Test Service https://01.org/lkp