Lines Matching refs:ifmgd
124 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_sta_reset_conn_monitor() local
126 if (unlikely(!ifmgd->associated)) in ieee80211_sta_reset_conn_monitor()
129 if (ifmgd->probe_send_count) in ieee80211_sta_reset_conn_monitor()
130 ifmgd->probe_send_count = 0; in ieee80211_sta_reset_conn_monitor()
135 mod_timer(&ifmgd->conn_mon_timer, in ieee80211_sta_reset_conn_monitor()
155 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_determine_chantype() local
239 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HE) && he_oper && in ieee80211_determine_chantype()
254 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HE)) in ieee80211_determine_chantype()
264 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) in ieee80211_determine_chantype()
272 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) in ieee80211_determine_chantype()
285 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) in ieee80211_determine_chantype()
367 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_config_bw() local
379 if (ifmgd->flags & IEEE80211_STA_DISABLE_HT || !ht_oper) in ieee80211_config_bw()
383 if (ifmgd->flags & IEEE80211_STA_DISABLE_VHT) in ieee80211_config_bw()
387 if (ifmgd->flags & IEEE80211_STA_DISABLE_HE || in ieee80211_config_bw()
419 if (ifmgd->flags & IEEE80211_STA_DISABLE_80P80MHZ && in ieee80211_config_bw()
422 if (ifmgd->flags & IEEE80211_STA_DISABLE_160MHZ && in ieee80211_config_bw()
425 if (ifmgd->flags & IEEE80211_STA_DISABLE_40MHZ && in ieee80211_config_bw()
435 ifmgd->bssid, chandef.chan->center_freq, in ieee80211_config_bw()
440 if (flags != (ifmgd->flags & (IEEE80211_STA_DISABLE_HT | in ieee80211_config_bw()
449 ifmgd->bssid); in ieee80211_config_bw()
485 ifmgd->bssid); in ieee80211_config_bw()
701 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_send_assoc() local
702 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_send_assoc()
794 if (ifmgd->flags & IEEE80211_STA_ENABLE_RRM) in ieee80211_send_assoc()
899 !(ifmgd->flags & IEEE80211_STA_DISABLE_HE) && assoc_data->ie_len && in ieee80211_send_assoc()
944 if (WARN_ON_ONCE((ifmgd->flags & IEEE80211_STA_DISABLE_HT) && in ieee80211_send_assoc()
945 !(ifmgd->flags & IEEE80211_STA_DISABLE_VHT))) in ieee80211_send_assoc()
946 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; in ieee80211_send_assoc()
949 !(ifmgd->flags & IEEE80211_STA_DISABLE_HT)) in ieee80211_send_assoc()
1004 !(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) in ieee80211_send_assoc()
1012 if (ifmgd->flags & IEEE80211_STA_DISABLE_HT || in ieee80211_send_assoc()
1014 ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) in ieee80211_send_assoc()
1015 ifmgd->flags |= IEEE80211_STA_DISABLE_HE; in ieee80211_send_assoc()
1017 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HE)) in ieee80211_send_assoc()
1031 qos_info = ifmgd->uapsd_queues; in ieee80211_send_assoc()
1032 qos_info |= (ifmgd->uapsd_max_sp_len << in ieee80211_send_assoc()
1059 kfree(ifmgd->assoc_req_ies); in ieee80211_send_assoc()
1060 ifmgd->assoc_req_ies = kmemdup(ie_start, pos - ie_start, GFP_ATOMIC); in ieee80211_send_assoc()
1061 ifmgd->assoc_req_ies_len = pos - ie_start; in ieee80211_send_assoc()
1095 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_send_nullfunc() local
1099 !(ifmgd->flags & IEEE80211_STA_DISABLE_HE)) in ieee80211_send_nullfunc()
1117 if (ifmgd->flags & IEEE80211_STA_CONNECTION_POLL) in ieee80211_send_nullfunc()
1162 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_chswitch_work() local
1172 if (!ifmgd->associated) in ieee80211_chswitch_work()
1228 mgd_sta = sta_info_get(sdata, ifmgd->bssid); in ieee80211_chswitch_work()
1246 &ifmgd->csa_connection_drop_work); in ieee80211_chswitch_work()
1265 &ifmgd->csa_connection_drop_work); in ieee80211_chswitch_work()
1269 ifmgd->csa_waiting_bcn = true; in ieee80211_chswitch_work()
1283 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_chswitch_post_beacon() local
1297 ifmgd->csa_waiting_bcn = false; in ieee80211_chswitch_post_beacon()
1304 &ifmgd->csa_connection_drop_work); in ieee80211_chswitch_post_beacon()
1314 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_chswitch_done() local
1321 &ifmgd->csa_connection_drop_work); in ieee80211_chswitch_done()
1323 ieee80211_queue_work(&sdata->local->hw, &ifmgd->chswitch_work); in ieee80211_chswitch_done()
1369 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_sta_process_chanswitch() local
1370 struct cfg80211_bss *cbss = ifmgd->associated; in ieee80211_sta_process_chanswitch()
1391 ifmgd->flags, in ieee80211_sta_process_chanswitch()
1392 ifmgd->associated->bssid, &csa_ie); in ieee80211_sta_process_chanswitch()
1405 &ifmgd->csa_connection_drop_work); in ieee80211_sta_process_chanswitch()
1409 if (beacon && sdata->vif.csa_active && !ifmgd->csa_waiting_bcn) { in ieee80211_sta_process_chanswitch()
1426 ifmgd->associated->bssid, in ieee80211_sta_process_chanswitch()
1433 &ifmgd->csa_connection_drop_work); in ieee80211_sta_process_chanswitch()
1440 if (ifmgd->csa_ignored_same_chan) in ieee80211_sta_process_chanswitch()
1444 ifmgd->associated->bssid); in ieee80211_sta_process_chanswitch()
1445 ifmgd->csa_ignored_same_chan = true; in ieee80211_sta_process_chanswitch()
1495 ifmgd->csa_ignored_same_chan = false; in ieee80211_sta_process_chanswitch()
1513 ieee80211_queue_work(&local->hw, &ifmgd->chswitch_work); in ieee80211_sta_process_chanswitch()
1515 mod_timer(&ifmgd->chswitch_timer, in ieee80211_sta_process_chanswitch()
1530 ieee80211_queue_work(&local->hw, &ifmgd->csa_connection_drop_work); in ieee80211_sta_process_chanswitch()
1835 struct ieee80211_if_managed *ifmgd; in ieee80211_dynamic_ps_enable_work() local
1843 ifmgd = &sdata->u.mgd; in ieee80211_dynamic_ps_enable_work()
1877 !(ifmgd->flags & IEEE80211_STA_NULLFUNC_ACKED)) { in ieee80211_dynamic_ps_enable_work()
1891 (ifmgd->flags & IEEE80211_STA_NULLFUNC_ACKED)) { in ieee80211_dynamic_ps_enable_work()
1892 ifmgd->flags &= ~IEEE80211_STA_NULLFUNC_ACKED; in ieee80211_dynamic_ps_enable_work()
1927 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in __ieee80211_sta_handle_tspec_ac_params() local
1935 struct ieee80211_sta_tx_tspec *tx_tspec = &ifmgd->tx_tspec[ac]; in __ieee80211_sta_handle_tspec_ac_params()
1989 schedule_delayed_work(&ifmgd->tx_tspec_wk, in __ieee80211_sta_handle_tspec_ac_params()
2024 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_sta_wmm_params() local
2042 if (ifmgd->flags & IEEE80211_STA_UAPSD_ENABLED) in ieee80211_sta_wmm_params()
2043 uapsd_queues = ifmgd->uapsd_queues; in ieee80211_sta_wmm_params()
2051 if (count == ifmgd->wmm_last_param_set && in ieee80211_sta_wmm_params()
2052 mu_edca_count == ifmgd->mu_edca_last_param_set) in ieee80211_sta_wmm_params()
2054 ifmgd->wmm_last_param_set = count; in ieee80211_sta_wmm_params()
2055 ifmgd->mu_edca_last_param_set = mu_edca_count; in ieee80211_sta_wmm_params()
2152 ifmgd->tx_tspec[ac].downgraded); in ieee80211_sta_wmm_params()
2154 if (!ifmgd->tx_tspec[ac].downgraded && in ieee80211_sta_wmm_params()
2318 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_set_disassoc() local
2327 if (WARN_ON(!ifmgd->associated)) in ieee80211_set_disassoc()
2332 ifmgd->associated = NULL; in ieee80211_set_disassoc()
2370 !ifmgd->have_beacon) in ieee80211_set_disassoc()
2373 ieee80211_send_deauth_disassoc(sdata, ifmgd->bssid, in ieee80211_set_disassoc()
2374 ifmgd->bssid, stype, reason, in ieee80211_set_disassoc()
2383 eth_zero_addr(ifmgd->bssid); in ieee80211_set_disassoc()
2395 ifmgd->p2p_noa_index = -1; in ieee80211_set_disassoc()
2400 memset(&ifmgd->ht_capa, 0, sizeof(ifmgd->ht_capa)); in ieee80211_set_disassoc()
2401 memset(&ifmgd->ht_capa_mask, 0, sizeof(ifmgd->ht_capa_mask)); in ieee80211_set_disassoc()
2402 memset(&ifmgd->vht_capa, 0, sizeof(ifmgd->vht_capa)); in ieee80211_set_disassoc()
2403 memset(&ifmgd->vht_capa_mask, 0, sizeof(ifmgd->vht_capa_mask)); in ieee80211_set_disassoc()
2440 ifmgd->have_beacon = false; in ieee80211_set_disassoc()
2442 ifmgd->flags = 0; in ieee80211_set_disassoc()
2447 ifmgd->csa_waiting_bcn = false; in ieee80211_set_disassoc()
2448 ifmgd->csa_ignored_same_chan = false; in ieee80211_set_disassoc()
2457 memset(ifmgd->tx_tspec, 0, sizeof(ifmgd->tx_tspec)); in ieee80211_set_disassoc()
2458 cancel_delayed_work_sync(&ifmgd->tx_tspec_wk); in ieee80211_set_disassoc()
2465 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_reset_ap_probe() local
2469 if (!(ifmgd->flags & IEEE80211_STA_CONNECTION_POLL)) in ieee80211_reset_ap_probe()
2488 mod_timer(&ifmgd->conn_mon_timer, in ieee80211_reset_ap_probe()
2499 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_sta_tx_wmm_ac_notify() local
2502 struct ieee80211_sta_tx_tspec *tx_tspec = &ifmgd->tx_tspec[ac]; in ieee80211_sta_tx_wmm_ac_notify()
2514 schedule_delayed_work(&ifmgd->tx_tspec_wk, 0); in ieee80211_sta_tx_wmm_ac_notify()
2526 schedule_delayed_work(&ifmgd->tx_tspec_wk, 0); in ieee80211_sta_tx_wmm_ac_notify()
2562 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_mgd_probe_ap_send() local
2564 u8 *dst = ifmgd->associated->bssid; in ieee80211_mgd_probe_ap_send()
2573 if (ifmgd->probe_send_count >= unicast_limit) in ieee80211_mgd_probe_ap_send()
2583 ifmgd->probe_send_count++; in ieee80211_mgd_probe_ap_send()
2594 ifmgd->nullfunc_failed = false; in ieee80211_mgd_probe_ap_send()
2595 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HE)) in ieee80211_mgd_probe_ap_send()
2596 ifmgd->probe_send_count--; in ieee80211_mgd_probe_ap_send()
2603 ssid = ieee80211_bss_get_ie(ifmgd->associated, WLAN_EID_SSID); in ieee80211_mgd_probe_ap_send()
2611 ifmgd->associated->channel); in ieee80211_mgd_probe_ap_send()
2615 ifmgd->probe_timeout = jiffies + msecs_to_jiffies(probe_wait_ms); in ieee80211_mgd_probe_ap_send()
2616 run_again(sdata, ifmgd->probe_timeout); in ieee80211_mgd_probe_ap_send()
2622 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_mgd_probe_ap() local
2630 if (!ifmgd->associated) in ieee80211_mgd_probe_ap()
2659 if (ifmgd->flags & IEEE80211_STA_CONNECTION_POLL) in ieee80211_mgd_probe_ap()
2662 ifmgd->flags |= IEEE80211_STA_CONNECTION_POLL; in ieee80211_mgd_probe_ap()
2673 ifmgd->probe_send_count = 0; in ieee80211_mgd_probe_ap()
2683 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_ap_probereq_get() local
2694 if (ifmgd->associated) in ieee80211_ap_probereq_get()
2695 cbss = ifmgd->associated; in ieee80211_ap_probereq_get()
2696 else if (ifmgd->auth_data) in ieee80211_ap_probereq_get()
2697 cbss = ifmgd->auth_data->bss; in ieee80211_ap_probereq_get()
2698 else if (ifmgd->assoc_data) in ieee80211_ap_probereq_get()
2699 cbss = ifmgd->assoc_data->bss; in ieee80211_ap_probereq_get()
2742 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in __ieee80211_disconnect() local
2747 if (!ifmgd->associated) { in __ieee80211_disconnect()
2757 cfg80211_unlink_bss(local->hw.wiphy, ifmgd->associated); in __ieee80211_disconnect()
2764 ifmgd->csa_waiting_bcn = false; in __ieee80211_disconnect()
2783 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_beacon_connection_loss_work() local
2785 if (ifmgd->associated) in ieee80211_beacon_connection_loss_work()
2786 ifmgd->beacon_loss_count++; in ieee80211_beacon_connection_loss_work()
2788 if (ifmgd->connection_loss) { in ieee80211_beacon_connection_loss_work()
2790 ifmgd->bssid); in ieee80211_beacon_connection_loss_work()
2922 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_mark_sta_auth() local
2927 ifmgd->auth_data->done = true; in ieee80211_mark_sta_auth()
2928 ifmgd->auth_data->timeout = jiffies + IEEE80211_AUTH_WAIT_ASSOC; in ieee80211_mark_sta_auth()
2929 ifmgd->auth_data->timeout_started = true; in ieee80211_mark_sta_auth()
2930 run_again(sdata, ifmgd->auth_data->timeout); in ieee80211_mark_sta_auth()
2954 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_rx_mgmt_auth() local
2967 if (!ifmgd->auth_data || ifmgd->auth_data->done) in ieee80211_rx_mgmt_auth()
2970 memcpy(bssid, ifmgd->auth_data->bss->bssid, ETH_ALEN); in ieee80211_rx_mgmt_auth()
2979 if (auth_alg != ifmgd->auth_data->algorithm || in ieee80211_rx_mgmt_auth()
2981 auth_transaction != ifmgd->auth_data->expected_transaction) || in ieee80211_rx_mgmt_auth()
2983 (auth_transaction < ifmgd->auth_data->expected_transaction || in ieee80211_rx_mgmt_auth()
2986 mgmt->sa, auth_alg, ifmgd->auth_data->algorithm, in ieee80211_rx_mgmt_auth()
2988 ifmgd->auth_data->expected_transaction); in ieee80211_rx_mgmt_auth()
3011 switch (ifmgd->auth_data->algorithm) { in ieee80211_rx_mgmt_auth()
3021 if (ifmgd->auth_data->expected_transaction != 4) { in ieee80211_rx_mgmt_auth()
3029 ifmgd->auth_data->algorithm); in ieee80211_rx_mgmt_auth()
3035 if (ifmgd->auth_data->algorithm != WLAN_AUTH_SAE || in ieee80211_rx_mgmt_auth()
3037 ifmgd->auth_data->expected_transaction == 2)) { in ieee80211_rx_mgmt_auth()
3040 } else if (ifmgd->auth_data->algorithm == WLAN_AUTH_SAE && in ieee80211_rx_mgmt_auth()
3043 ifmgd->auth_data->peer_confirmed = true; in ieee80211_rx_mgmt_auth()
3109 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_rx_mgmt_deauth() local
3122 if (ifmgd->associated && in ieee80211_rx_mgmt_deauth()
3123 ether_addr_equal(mgmt->bssid, ifmgd->associated->bssid)) { in ieee80211_rx_mgmt_deauth()
3124 const u8 *bssid = ifmgd->associated->bssid; in ieee80211_rx_mgmt_deauth()
3137 if (ifmgd->assoc_data && in ieee80211_rx_mgmt_deauth()
3138 ether_addr_equal(mgmt->bssid, ifmgd->assoc_data->bss->bssid)) { in ieee80211_rx_mgmt_deauth()
3139 const u8 *bssid = ifmgd->assoc_data->bss->bssid; in ieee80211_rx_mgmt_deauth()
3157 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_rx_mgmt_disassoc() local
3165 if (!ifmgd->associated || in ieee80211_rx_mgmt_disassoc()
3166 !ether_addr_equal(mgmt->bssid, ifmgd->associated->bssid)) in ieee80211_rx_mgmt_disassoc()
3266 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_assoc_success() local
3273 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_assoc_success()
3302 ifmgd->broken_ap = false; in ieee80211_assoc_success()
3308 ifmgd->broken_ap = true; in ieee80211_assoc_success()
3317 ifmgd->tdls_chan_switch_prohibited = in ieee80211_assoc_success()
3330 (!(ifmgd->flags & IEEE80211_STA_DISABLE_HT) && in ieee80211_assoc_success()
3332 (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT) && in ieee80211_assoc_success()
3362 !(ifmgd->flags & IEEE80211_STA_DISABLE_HT)) { in ieee80211_assoc_success()
3368 !(ifmgd->flags & IEEE80211_STA_DISABLE_HT)) { in ieee80211_assoc_success()
3374 !(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) { in ieee80211_assoc_success()
3380 !(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) { in ieee80211_assoc_success()
3391 if (!is_6ghz && !(ifmgd->flags & IEEE80211_STA_DISABLE_HT) && in ieee80211_assoc_success()
3399 if (!is_6ghz && !(ifmgd->flags & IEEE80211_STA_DISABLE_VHT) && in ieee80211_assoc_success()
3407 if (is_6ghz && !(ifmgd->flags & IEEE80211_STA_DISABLE_HE) && in ieee80211_assoc_success()
3434 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HE) && in ieee80211_assoc_success()
3444 if (elems->ht_cap_elem && !(ifmgd->flags & IEEE80211_STA_DISABLE_HT)) in ieee80211_assoc_success()
3448 if (elems->vht_cap_elem && !(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) in ieee80211_assoc_success()
3452 if (elems->he_operation && !(ifmgd->flags & IEEE80211_STA_DISABLE_HE) && in ieee80211_assoc_success()
3546 if (ifmgd->flags & IEEE80211_STA_MFP_ENABLED) { in ieee80211_assoc_success()
3557 if (!err && !(ifmgd->flags & IEEE80211_STA_CONTROL_PORT)) in ieee80211_assoc_success()
3580 ifmgd->wmm_last_param_set = -1; in ieee80211_assoc_success()
3581 ifmgd->mu_edca_last_param_set = -1; in ieee80211_assoc_success()
3583 if (ifmgd->flags & IEEE80211_STA_DISABLE_WMM) { in ieee80211_assoc_success()
3597 ifmgd->flags |= IEEE80211_STA_DISABLE_WMM; in ieee80211_assoc_success()
3622 if (ifmgd->use_4addr) in ieee80211_assoc_success()
3642 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_rx_mgmt_assoc_resp() local
3643 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_rx_mgmt_assoc_resp()
3744 ifmgd->assoc_req_ies, ifmgd->assoc_req_ies_len); in ieee80211_rx_mgmt_assoc_resp()
3774 struct ieee80211_if_managed *ifmgd; in ieee80211_rx_mgmt_probe_resp() local
3779 ifmgd = &sdata->u.mgd; in ieee80211_rx_mgmt_probe_resp()
3806 if (ifmgd->associated && in ieee80211_rx_mgmt_probe_resp()
3807 ether_addr_equal(mgmt->bssid, ifmgd->associated->bssid)) in ieee80211_rx_mgmt_probe_resp()
3836 struct ieee80211_if_managed *ifmgd, in ieee80211_handle_beacon_sig() argument
3843 if (ifmgd->flags & IEEE80211_STA_RESET_SIGNAL_AVE) { in ieee80211_handle_beacon_sig()
3844 ifmgd->flags &= ~IEEE80211_STA_RESET_SIGNAL_AVE; in ieee80211_handle_beacon_sig()
3845 ewma_beacon_signal_init(&ifmgd->ave_beacon_signal); in ieee80211_handle_beacon_sig()
3846 ifmgd->last_cqm_event_signal = 0; in ieee80211_handle_beacon_sig()
3847 ifmgd->count_beacon_signal = 1; in ieee80211_handle_beacon_sig()
3848 ifmgd->last_ave_beacon_signal = 0; in ieee80211_handle_beacon_sig()
3850 ifmgd->count_beacon_signal++; in ieee80211_handle_beacon_sig()
3853 ewma_beacon_signal_add(&ifmgd->ave_beacon_signal, -rx_status->signal); in ieee80211_handle_beacon_sig()
3855 if (ifmgd->rssi_min_thold != ifmgd->rssi_max_thold && in ieee80211_handle_beacon_sig()
3856 ifmgd->count_beacon_signal >= IEEE80211_SIGNAL_AVE_MIN_COUNT) { in ieee80211_handle_beacon_sig()
3857 int sig = -ewma_beacon_signal_read(&ifmgd->ave_beacon_signal); in ieee80211_handle_beacon_sig()
3858 int last_sig = ifmgd->last_ave_beacon_signal; in ieee80211_handle_beacon_sig()
3867 if (sig > ifmgd->rssi_max_thold && in ieee80211_handle_beacon_sig()
3868 (last_sig <= ifmgd->rssi_min_thold || last_sig == 0)) { in ieee80211_handle_beacon_sig()
3869 ifmgd->last_ave_beacon_signal = sig; in ieee80211_handle_beacon_sig()
3872 } else if (sig < ifmgd->rssi_min_thold && in ieee80211_handle_beacon_sig()
3873 (last_sig >= ifmgd->rssi_max_thold || in ieee80211_handle_beacon_sig()
3875 ifmgd->last_ave_beacon_signal = sig; in ieee80211_handle_beacon_sig()
3882 ifmgd->count_beacon_signal >= IEEE80211_SIGNAL_AVE_MIN_COUNT && in ieee80211_handle_beacon_sig()
3884 int sig = -ewma_beacon_signal_read(&ifmgd->ave_beacon_signal); in ieee80211_handle_beacon_sig()
3885 int last_event = ifmgd->last_cqm_event_signal; in ieee80211_handle_beacon_sig()
3891 ifmgd->last_cqm_event_signal = sig; in ieee80211_handle_beacon_sig()
3898 ifmgd->last_cqm_event_signal = sig; in ieee80211_handle_beacon_sig()
3907 ifmgd->count_beacon_signal >= IEEE80211_SIGNAL_AVE_MIN_COUNT) { in ieee80211_handle_beacon_sig()
3908 int sig = -ewma_beacon_signal_read(&ifmgd->ave_beacon_signal); in ieee80211_handle_beacon_sig()
3909 int last_event = ifmgd->last_cqm_event_signal; in ieee80211_handle_beacon_sig()
3915 ifmgd->last_cqm_event_signal = sig; in ieee80211_handle_beacon_sig()
3922 ifmgd->last_cqm_event_signal = sig; in ieee80211_handle_beacon_sig()
3945 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_rx_mgmt_beacon() local
3993 if (ifmgd->assoc_data && ifmgd->assoc_data->need_beacon && in ieee80211_rx_mgmt_beacon()
3994 ieee80211_rx_our_beacon(bssid, ifmgd->assoc_data->bss)) { in ieee80211_rx_mgmt_beacon()
3998 ifmgd->assoc_data->bss->bssid); in ieee80211_rx_mgmt_beacon()
4003 ifmgd->dtim_period = elems.dtim_period; in ieee80211_rx_mgmt_beacon()
4004 ifmgd->have_beacon = true; in ieee80211_rx_mgmt_beacon()
4005 ifmgd->assoc_data->need_beacon = false; in ieee80211_rx_mgmt_beacon()
4023 ifmgd->assoc_data->timeout = jiffies; in ieee80211_rx_mgmt_beacon()
4024 ifmgd->assoc_data->timeout_started = true; in ieee80211_rx_mgmt_beacon()
4025 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_rx_mgmt_beacon()
4029 if (!ifmgd->associated || in ieee80211_rx_mgmt_beacon()
4030 !ieee80211_rx_our_beacon(bssid, ifmgd->associated)) in ieee80211_rx_mgmt_beacon()
4032 bssid = ifmgd->associated->bssid; in ieee80211_rx_mgmt_beacon()
4035 ieee80211_handle_beacon_sig(sdata, ifmgd, bss_conf, in ieee80211_rx_mgmt_beacon()
4038 if (ifmgd->flags & IEEE80211_STA_CONNECTION_POLL) { in ieee80211_rx_mgmt_beacon()
4105 ifmgd->beacon_crc_valid = false; in ieee80211_rx_mgmt_beacon()
4112 ifmgd->beacon_crc_valid = false; in ieee80211_rx_mgmt_beacon()
4116 if (ifmgd->csa_waiting_bcn) in ieee80211_rx_mgmt_beacon()
4136 if ((ncrc == ifmgd->beacon_crc && ifmgd->beacon_crc_valid) || in ieee80211_rx_mgmt_beacon()
4139 ifmgd->beacon_crc = ncrc; in ieee80211_rx_mgmt_beacon()
4140 ifmgd->beacon_crc_valid = true; in ieee80211_rx_mgmt_beacon()
4148 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_WMM) && in ieee80211_rx_mgmt_beacon()
4158 if (!ifmgd->have_beacon) { in ieee80211_rx_mgmt_beacon()
4163 ifmgd->have_beacon = true; in ieee80211_rx_mgmt_beacon()
4353 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_auth() local
4354 struct ieee80211_mgd_auth_data *auth_data = ifmgd->auth_data; in ieee80211_auth()
4481 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_sta_work() local
4485 if (ifmgd->status_received) { in ieee80211_sta_work()
4486 __le16 fc = ifmgd->status_fc; in ieee80211_sta_work()
4487 bool status_acked = ifmgd->status_acked; in ieee80211_sta_work()
4489 ifmgd->status_received = false; in ieee80211_sta_work()
4490 if (ifmgd->auth_data && ieee80211_is_auth(fc)) { in ieee80211_sta_work()
4492 if (ifmgd->auth_data->algorithm == in ieee80211_sta_work()
4494 ifmgd->auth_data->timeout = in ieee80211_sta_work()
4498 ifmgd->auth_data->timeout = in ieee80211_sta_work()
4501 run_again(sdata, ifmgd->auth_data->timeout); in ieee80211_sta_work()
4503 ifmgd->auth_data->timeout = jiffies - 1; in ieee80211_sta_work()
4505 ifmgd->auth_data->timeout_started = true; in ieee80211_sta_work()
4506 } else if (ifmgd->assoc_data && in ieee80211_sta_work()
4510 ifmgd->assoc_data->timeout = in ieee80211_sta_work()
4512 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_sta_work()
4514 ifmgd->assoc_data->timeout = jiffies - 1; in ieee80211_sta_work()
4516 ifmgd->assoc_data->timeout_started = true; in ieee80211_sta_work()
4520 if (ifmgd->auth_data && ifmgd->auth_data->timeout_started && in ieee80211_sta_work()
4521 time_after(jiffies, ifmgd->auth_data->timeout)) { in ieee80211_sta_work()
4522 if (ifmgd->auth_data->done) { in ieee80211_sta_work()
4536 memcpy(bssid, ifmgd->auth_data->bss->bssid, ETH_ALEN); in ieee80211_sta_work()
4543 } else if (ifmgd->auth_data && ifmgd->auth_data->timeout_started) in ieee80211_sta_work()
4544 run_again(sdata, ifmgd->auth_data->timeout); in ieee80211_sta_work()
4546 if (ifmgd->assoc_data && ifmgd->assoc_data->timeout_started && in ieee80211_sta_work()
4547 time_after(jiffies, ifmgd->assoc_data->timeout)) { in ieee80211_sta_work()
4548 if ((ifmgd->assoc_data->need_beacon && !ifmgd->have_beacon) || in ieee80211_sta_work()
4550 struct cfg80211_bss *bss = ifmgd->assoc_data->bss; in ieee80211_sta_work()
4561 } else if (ifmgd->assoc_data && ifmgd->assoc_data->timeout_started) in ieee80211_sta_work()
4562 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_sta_work()
4564 if (ifmgd->flags & IEEE80211_STA_CONNECTION_POLL && in ieee80211_sta_work()
4565 ifmgd->associated) { in ieee80211_sta_work()
4569 memcpy(bssid, ifmgd->associated->bssid, ETH_ALEN); in ieee80211_sta_work()
4577 if (!ifmgd->probe_send_count) in ieee80211_sta_work()
4579 else if (ifmgd->nullfunc_failed) { in ieee80211_sta_work()
4580 if (ifmgd->probe_send_count < max_tries) { in ieee80211_sta_work()
4583 bssid, ifmgd->probe_send_count, in ieee80211_sta_work()
4594 } else if (time_is_after_jiffies(ifmgd->probe_timeout)) in ieee80211_sta_work()
4595 run_again(sdata, ifmgd->probe_timeout); in ieee80211_sta_work()
4602 } else if (ifmgd->probe_send_count < max_tries) { in ieee80211_sta_work()
4606 ifmgd->probe_send_count, max_tries); in ieee80211_sta_work()
4629 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_sta_bcn_mon_timer() local
4631 if (sdata->vif.csa_active && !ifmgd->csa_waiting_bcn) in ieee80211_sta_bcn_mon_timer()
4646 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_sta_conn_mon_timer() local
4651 if (sdata->vif.csa_active && !ifmgd->csa_waiting_bcn) in ieee80211_sta_conn_mon_timer()
4654 sta = sta_info_get(sdata, ifmgd->bssid); in ieee80211_sta_conn_mon_timer()
4664 mod_timer(&ifmgd->conn_mon_timer, round_jiffies_up(timeout)); in ieee80211_sta_conn_mon_timer()
4668 ieee80211_queue_work(&local->hw, &ifmgd->monitor_work); in ieee80211_sta_conn_mon_timer()
4695 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_mgd_quiesce() local
4700 if (ifmgd->auth_data || ifmgd->assoc_data) { in ieee80211_mgd_quiesce()
4701 const u8 *bssid = ifmgd->auth_data ? in ieee80211_mgd_quiesce()
4702 ifmgd->auth_data->bss->bssid : in ieee80211_mgd_quiesce()
4703 ifmgd->assoc_data->bss->bssid; in ieee80211_mgd_quiesce()
4714 if (ifmgd->assoc_data) in ieee80211_mgd_quiesce()
4716 if (ifmgd->auth_data) in ieee80211_mgd_quiesce()
4739 if (ifmgd->associated && !sdata->local->wowlan) { in ieee80211_mgd_quiesce()
4746 memcpy(bssid, ifmgd->associated->bssid, ETH_ALEN); in ieee80211_mgd_quiesce()
4755 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_sta_restart() local
4758 if (!ifmgd->associated) { in ieee80211_sta_restart()
4767 ifmgd->associated->bssid, in ieee80211_sta_restart()
4780 struct ieee80211_if_managed *ifmgd; in ieee80211_sta_setup_sdata() local
4782 ifmgd = &sdata->u.mgd; in ieee80211_sta_setup_sdata()
4783 INIT_WORK(&ifmgd->monitor_work, ieee80211_sta_monitor_work); in ieee80211_sta_setup_sdata()
4784 INIT_WORK(&ifmgd->chswitch_work, ieee80211_chswitch_work); in ieee80211_sta_setup_sdata()
4785 INIT_WORK(&ifmgd->beacon_connection_loss_work, in ieee80211_sta_setup_sdata()
4787 INIT_WORK(&ifmgd->csa_connection_drop_work, in ieee80211_sta_setup_sdata()
4789 INIT_WORK(&ifmgd->request_smps_work, ieee80211_request_smps_mgd_work); in ieee80211_sta_setup_sdata()
4790 INIT_DELAYED_WORK(&ifmgd->tdls_peer_del_work, in ieee80211_sta_setup_sdata()
4792 timer_setup(&ifmgd->timer, ieee80211_sta_timer, 0); in ieee80211_sta_setup_sdata()
4793 timer_setup(&ifmgd->bcn_mon_timer, ieee80211_sta_bcn_mon_timer, 0); in ieee80211_sta_setup_sdata()
4794 timer_setup(&ifmgd->conn_mon_timer, ieee80211_sta_conn_mon_timer, 0); in ieee80211_sta_setup_sdata()
4795 timer_setup(&ifmgd->chswitch_timer, ieee80211_chswitch_timer, 0); in ieee80211_sta_setup_sdata()
4796 INIT_DELAYED_WORK(&ifmgd->tx_tspec_wk, in ieee80211_sta_setup_sdata()
4799 ifmgd->flags = 0; in ieee80211_sta_setup_sdata()
4800 ifmgd->powersave = sdata->wdev.ps; in ieee80211_sta_setup_sdata()
4801 ifmgd->uapsd_queues = sdata->local->hw.uapsd_queues; in ieee80211_sta_setup_sdata()
4802 ifmgd->uapsd_max_sp_len = sdata->local->hw.uapsd_max_sp_len; in ieee80211_sta_setup_sdata()
4803 ifmgd->p2p_noa_index = -1; in ieee80211_sta_setup_sdata()
4806 ifmgd->req_smps = IEEE80211_SMPS_AUTOMATIC; in ieee80211_sta_setup_sdata()
4808 ifmgd->req_smps = IEEE80211_SMPS_OFF; in ieee80211_sta_setup_sdata()
4811 spin_lock_init(&ifmgd->teardown_lock); in ieee80211_sta_setup_sdata()
4812 ifmgd->teardown_skb = NULL; in ieee80211_sta_setup_sdata()
4813 ifmgd->orig_teardown_skb = NULL; in ieee80211_sta_setup_sdata()
4833 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_ht_vht_rx_chains() local
4839 if (ifmgd->flags & IEEE80211_STA_DISABLE_HT) in ieee80211_ht_vht_rx_chains()
4852 if (ifmgd->flags & IEEE80211_STA_DISABLE_VHT) in ieee80211_ht_vht_rx_chains()
4940 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_prep_channel() local
4957 ifmgd->flags &= ~(IEEE80211_STA_DISABLE_40MHZ | in ieee80211_prep_channel()
4963 ifmgd->flags |= IEEE80211_STA_DISABLE_HT; in ieee80211_prep_channel()
4964 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; in ieee80211_prep_channel()
4965 ifmgd->flags |= IEEE80211_STA_DISABLE_HE; in ieee80211_prep_channel()
4969 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; in ieee80211_prep_channel()
4970 ifmgd->flags |= IEEE80211_STA_DISABLE_HE; in ieee80211_prep_channel()
4974 ifmgd->flags |= IEEE80211_STA_DISABLE_HE; in ieee80211_prep_channel()
4978 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HT) && !is_6ghz) { in ieee80211_prep_channel()
4990 ifmgd->flags |= IEEE80211_STA_DISABLE_HT; in ieee80211_prep_channel()
4995 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT) && !is_6ghz) { in ieee80211_prep_channel()
5006 ifmgd->flags |= IEEE80211_STA_DISABLE_HT; in ieee80211_prep_channel()
5007 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; in ieee80211_prep_channel()
5008 ifmgd->flags |= IEEE80211_STA_DISABLE_HE; in ieee80211_prep_channel()
5013 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; in ieee80211_prep_channel()
5018 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HE)) { in ieee80211_prep_channel()
5032 ifmgd->flags |= IEEE80211_STA_DISABLE_HE; in ieee80211_prep_channel()
5047 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; in ieee80211_prep_channel()
5061 ifmgd->flags |= ieee80211_determine_chantype(sdata, sband, in ieee80211_prep_channel()
5073 if (ifmgd->flags & IEEE80211_STA_DISABLE_HE && is_6ghz) { in ieee80211_prep_channel()
5096 ifmgd->flags |= ieee80211_chandef_downgrade(&chandef); in ieee80211_prep_channel()
5144 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_prep_connection() local
5153 if (WARN_ON(!ifmgd->auth_data && !ifmgd->assoc_data)) in ieee80211_prep_connection()
5243 memcpy(ifmgd->bssid, cbss->bssid, ETH_ALEN); in ieee80211_prep_connection()
5303 WARN_ON_ONCE(!ether_addr_equal(ifmgd->bssid, cbss->bssid)); in ieee80211_prep_connection()
5317 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_mgd_auth() local
5356 if (ifmgd->assoc_data) in ieee80211_mgd_auth()
5383 cont_auth = ifmgd->auth_data && req->bss == ifmgd->auth_data->bss; in ieee80211_mgd_auth()
5401 if (ifmgd->auth_data) { in ieee80211_mgd_auth()
5404 ifmgd->auth_data->peer_confirmed; in ieee80211_mgd_auth()
5410 ifmgd->auth_data = auth_data; in ieee80211_mgd_auth()
5421 if (ifmgd->associated) { in ieee80211_mgd_auth()
5426 ifmgd->associated->bssid, req->bss->bssid); in ieee80211_mgd_auth()
5453 eth_zero_addr(ifmgd->bssid); in ieee80211_mgd_auth()
5455 ifmgd->auth_data = NULL; in ieee80211_mgd_auth()
5469 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_mgd_assoc() local
5493 if (ifmgd->associated) { in ieee80211_mgd_assoc()
5498 ifmgd->associated->bssid, req->bss->bssid); in ieee80211_mgd_assoc()
5508 if (ifmgd->auth_data && !ifmgd->auth_data->done) { in ieee80211_mgd_assoc()
5513 if (ifmgd->assoc_data) { in ieee80211_mgd_assoc()
5518 if (ifmgd->auth_data) { in ieee80211_mgd_assoc()
5522 match = ether_addr_equal(ifmgd->bssid, req->bss->bssid); in ieee80211_mgd_assoc()
5528 ifmgd->beacon_crc_valid = false; in ieee80211_mgd_assoc()
5544 ifmgd->flags |= IEEE80211_STA_DISABLE_HT; in ieee80211_mgd_assoc()
5545 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; in ieee80211_mgd_assoc()
5546 ifmgd->flags |= IEEE80211_STA_DISABLE_HE; in ieee80211_mgd_assoc()
5556 ifmgd->flags |= IEEE80211_STA_DISABLE_HT; in ieee80211_mgd_assoc()
5557 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; in ieee80211_mgd_assoc()
5558 ifmgd->flags |= IEEE80211_STA_DISABLE_HE; in ieee80211_mgd_assoc()
5563 memcpy(&ifmgd->ht_capa, &req->ht_capa, sizeof(ifmgd->ht_capa)); in ieee80211_mgd_assoc()
5564 memcpy(&ifmgd->ht_capa_mask, &req->ht_capa_mask, in ieee80211_mgd_assoc()
5565 sizeof(ifmgd->ht_capa_mask)); in ieee80211_mgd_assoc()
5567 memcpy(&ifmgd->vht_capa, &req->vht_capa, sizeof(ifmgd->vht_capa)); in ieee80211_mgd_assoc()
5568 memcpy(&ifmgd->vht_capa_mask, &req->vht_capa_mask, in ieee80211_mgd_assoc()
5569 sizeof(ifmgd->vht_capa_mask)); in ieee80211_mgd_assoc()
5571 memcpy(&ifmgd->s1g_capa, &req->s1g_capa, sizeof(ifmgd->s1g_capa)); in ieee80211_mgd_assoc()
5572 memcpy(&ifmgd->s1g_capa_mask, &req->s1g_capa_mask, in ieee80211_mgd_assoc()
5573 sizeof(ifmgd->s1g_capa_mask)); in ieee80211_mgd_assoc()
5597 if (ifmgd->req_smps == IEEE80211_SMPS_AUTOMATIC) { in ieee80211_mgd_assoc()
5598 if (ifmgd->powersave) in ieee80211_mgd_assoc()
5603 sdata->smps_mode = ifmgd->req_smps; in ieee80211_mgd_assoc()
5615 ifmgd->flags |= IEEE80211_STA_DISABLE_HT; in ieee80211_mgd_assoc()
5621 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT | in ieee80211_mgd_assoc()
5633 ifmgd->flags |= IEEE80211_STA_UAPSD_ENABLED; in ieee80211_mgd_assoc()
5636 ifmgd->flags &= ~IEEE80211_STA_UAPSD_ENABLED; in ieee80211_mgd_assoc()
5643 ifmgd->mfp = IEEE80211_MFP_REQUIRED; in ieee80211_mgd_assoc()
5644 ifmgd->flags |= IEEE80211_STA_MFP_ENABLED; in ieee80211_mgd_assoc()
5646 ifmgd->mfp = IEEE80211_MFP_DISABLED; in ieee80211_mgd_assoc()
5647 ifmgd->flags &= ~IEEE80211_STA_MFP_ENABLED; in ieee80211_mgd_assoc()
5651 ifmgd->flags |= IEEE80211_STA_ENABLE_RRM; in ieee80211_mgd_assoc()
5653 ifmgd->flags &= ~IEEE80211_STA_ENABLE_RRM; in ieee80211_mgd_assoc()
5656 ifmgd->flags |= IEEE80211_STA_CONTROL_PORT; in ieee80211_mgd_assoc()
5658 ifmgd->flags &= ~IEEE80211_STA_CONTROL_PORT; in ieee80211_mgd_assoc()
5670 ifmgd->assoc_data = assoc_data; in ieee80211_mgd_assoc()
5671 ifmgd->dtim_period = 0; in ieee80211_mgd_assoc()
5672 ifmgd->have_beacon = false; in ieee80211_mgd_assoc()
5675 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HT)) { in ieee80211_mgd_assoc()
5685 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_40MHZ) && in ieee80211_mgd_assoc()
5690 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT) && in ieee80211_mgd_assoc()
5696 ifmgd->flags |= IEEE80211_STA_DISABLE_HT; in ieee80211_mgd_assoc()
5697 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; in ieee80211_mgd_assoc()
5698 ifmgd->flags |= IEEE80211_STA_DISABLE_HE; in ieee80211_mgd_assoc()
5702 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; in ieee80211_mgd_assoc()
5718 ifmgd->bssid); in ieee80211_mgd_assoc()
5727 &ifmgd->dtim_period); in ieee80211_mgd_assoc()
5729 ifmgd->have_beacon = true; in ieee80211_mgd_assoc()
5774 eth_zero_addr(ifmgd->bssid); in ieee80211_mgd_assoc()
5776 ifmgd->assoc_data = NULL; in ieee80211_mgd_assoc()
5785 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_mgd_deauth() local
5789 if (ifmgd->auth_data && in ieee80211_mgd_deauth()
5790 ether_addr_equal(ifmgd->auth_data->bss->bssid, req->bssid)) { in ieee80211_mgd_deauth()
5809 if (ifmgd->assoc_data && in ieee80211_mgd_deauth()
5810 ether_addr_equal(ifmgd->assoc_data->bss->bssid, req->bssid)) { in ieee80211_mgd_deauth()
5828 if (ifmgd->associated && in ieee80211_mgd_deauth()
5829 ether_addr_equal(ifmgd->associated->bssid, req->bssid)) { in ieee80211_mgd_deauth()
5849 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_mgd_disassoc() local
5859 if (ifmgd->associated != req->bss) in ieee80211_mgd_disassoc()
5879 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_mgd_stop() local
5886 cancel_work_sync(&ifmgd->monitor_work); in ieee80211_mgd_stop()
5887 cancel_work_sync(&ifmgd->beacon_connection_loss_work); in ieee80211_mgd_stop()
5888 cancel_work_sync(&ifmgd->request_smps_work); in ieee80211_mgd_stop()
5889 cancel_work_sync(&ifmgd->csa_connection_drop_work); in ieee80211_mgd_stop()
5890 cancel_work_sync(&ifmgd->chswitch_work); in ieee80211_mgd_stop()
5891 cancel_delayed_work_sync(&ifmgd->tdls_peer_del_work); in ieee80211_mgd_stop()
5894 if (ifmgd->assoc_data) { in ieee80211_mgd_stop()
5895 struct cfg80211_bss *bss = ifmgd->assoc_data->bss; in ieee80211_mgd_stop()
5899 if (ifmgd->auth_data) in ieee80211_mgd_stop()
5901 spin_lock_bh(&ifmgd->teardown_lock); in ieee80211_mgd_stop()
5902 if (ifmgd->teardown_skb) { in ieee80211_mgd_stop()
5903 kfree_skb(ifmgd->teardown_skb); in ieee80211_mgd_stop()
5904 ifmgd->teardown_skb = NULL; in ieee80211_mgd_stop()
5905 ifmgd->orig_teardown_skb = NULL; in ieee80211_mgd_stop()
5907 kfree(ifmgd->assoc_req_ies); in ieee80211_mgd_stop()
5908 ifmgd->assoc_req_ies = NULL; in ieee80211_mgd_stop()
5909 ifmgd->assoc_req_ies_len = 0; in ieee80211_mgd_stop()
5910 spin_unlock_bh(&ifmgd->teardown_lock); in ieee80211_mgd_stop()
5911 del_timer_sync(&ifmgd->timer); in ieee80211_mgd_stop()