Lines Matching refs:ifmgd

125 	struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;  in ieee80211_sta_reset_conn_monitor()  local
127 if (unlikely(!ifmgd->associated)) in ieee80211_sta_reset_conn_monitor()
130 if (ifmgd->probe_send_count) in ieee80211_sta_reset_conn_monitor()
131 ifmgd->probe_send_count = 0; in ieee80211_sta_reset_conn_monitor()
136 mod_timer(&ifmgd->conn_mon_timer, in ieee80211_sta_reset_conn_monitor()
156 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_determine_chantype() local
240 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HE) && he_oper && in ieee80211_determine_chantype()
255 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HE)) in ieee80211_determine_chantype()
265 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) in ieee80211_determine_chantype()
273 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) in ieee80211_determine_chantype()
286 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) in ieee80211_determine_chantype()
368 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_config_bw() local
380 if (ifmgd->flags & IEEE80211_STA_DISABLE_HT || !ht_oper) in ieee80211_config_bw()
384 if (ifmgd->flags & IEEE80211_STA_DISABLE_VHT) in ieee80211_config_bw()
388 if (ifmgd->flags & IEEE80211_STA_DISABLE_HE || in ieee80211_config_bw()
420 if (ifmgd->flags & IEEE80211_STA_DISABLE_80P80MHZ && in ieee80211_config_bw()
423 if (ifmgd->flags & IEEE80211_STA_DISABLE_160MHZ && in ieee80211_config_bw()
426 if (ifmgd->flags & IEEE80211_STA_DISABLE_40MHZ && in ieee80211_config_bw()
436 ifmgd->bssid, chandef.chan->center_freq, in ieee80211_config_bw()
441 if (flags != (ifmgd->flags & (IEEE80211_STA_DISABLE_HT | in ieee80211_config_bw()
450 ifmgd->bssid); in ieee80211_config_bw()
486 ifmgd->bssid); in ieee80211_config_bw()
702 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_send_assoc() local
703 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_send_assoc()
795 if (ifmgd->flags & IEEE80211_STA_ENABLE_RRM) in ieee80211_send_assoc()
900 !(ifmgd->flags & IEEE80211_STA_DISABLE_HE) && assoc_data->ie_len && in ieee80211_send_assoc()
945 if (WARN_ON_ONCE((ifmgd->flags & IEEE80211_STA_DISABLE_HT) && in ieee80211_send_assoc()
946 !(ifmgd->flags & IEEE80211_STA_DISABLE_VHT))) in ieee80211_send_assoc()
947 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; in ieee80211_send_assoc()
950 !(ifmgd->flags & IEEE80211_STA_DISABLE_HT)) in ieee80211_send_assoc()
1005 !(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) in ieee80211_send_assoc()
1013 if (ifmgd->flags & IEEE80211_STA_DISABLE_HT || in ieee80211_send_assoc()
1015 ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) in ieee80211_send_assoc()
1016 ifmgd->flags |= IEEE80211_STA_DISABLE_HE; in ieee80211_send_assoc()
1018 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HE)) in ieee80211_send_assoc()
1032 qos_info = ifmgd->uapsd_queues; in ieee80211_send_assoc()
1033 qos_info |= (ifmgd->uapsd_max_sp_len << in ieee80211_send_assoc()
1060 kfree(ifmgd->assoc_req_ies); in ieee80211_send_assoc()
1061 ifmgd->assoc_req_ies = kmemdup(ie_start, pos - ie_start, GFP_ATOMIC); in ieee80211_send_assoc()
1062 ifmgd->assoc_req_ies_len = pos - ie_start; in ieee80211_send_assoc()
1096 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_send_nullfunc() local
1113 if (ifmgd->flags & IEEE80211_STA_CONNECTION_POLL) in ieee80211_send_nullfunc()
1154 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_chswitch_work() local
1164 if (!ifmgd->associated) in ieee80211_chswitch_work()
1220 mgd_sta = sta_info_get(sdata, ifmgd->bssid); in ieee80211_chswitch_work()
1238 &ifmgd->csa_connection_drop_work); in ieee80211_chswitch_work()
1257 &ifmgd->csa_connection_drop_work); in ieee80211_chswitch_work()
1261 ifmgd->csa_waiting_bcn = true; in ieee80211_chswitch_work()
1275 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_chswitch_post_beacon() local
1289 ifmgd->csa_waiting_bcn = false; in ieee80211_chswitch_post_beacon()
1294 ifmgd->beacon_crc_valid = false; in ieee80211_chswitch_post_beacon()
1301 &ifmgd->csa_connection_drop_work); in ieee80211_chswitch_post_beacon()
1311 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_chswitch_done() local
1318 &ifmgd->csa_connection_drop_work); in ieee80211_chswitch_done()
1320 ieee80211_queue_work(&sdata->local->hw, &ifmgd->chswitch_work); in ieee80211_chswitch_done()
1366 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_sta_process_chanswitch() local
1367 struct cfg80211_bss *cbss = ifmgd->associated; in ieee80211_sta_process_chanswitch()
1388 ifmgd->flags, in ieee80211_sta_process_chanswitch()
1389 ifmgd->associated->bssid, &csa_ie); in ieee80211_sta_process_chanswitch()
1402 &ifmgd->csa_connection_drop_work); in ieee80211_sta_process_chanswitch()
1406 if (beacon && sdata->vif.csa_active && !ifmgd->csa_waiting_bcn) { in ieee80211_sta_process_chanswitch()
1423 ifmgd->associated->bssid, in ieee80211_sta_process_chanswitch()
1430 &ifmgd->csa_connection_drop_work); in ieee80211_sta_process_chanswitch()
1437 if (ifmgd->csa_ignored_same_chan) in ieee80211_sta_process_chanswitch()
1441 ifmgd->associated->bssid); in ieee80211_sta_process_chanswitch()
1442 ifmgd->csa_ignored_same_chan = true; in ieee80211_sta_process_chanswitch()
1492 ifmgd->csa_ignored_same_chan = false; in ieee80211_sta_process_chanswitch()
1510 ieee80211_queue_work(&local->hw, &ifmgd->chswitch_work); in ieee80211_sta_process_chanswitch()
1512 mod_timer(&ifmgd->chswitch_timer, in ieee80211_sta_process_chanswitch()
1527 ieee80211_queue_work(&local->hw, &ifmgd->csa_connection_drop_work); in ieee80211_sta_process_chanswitch()
1832 struct ieee80211_if_managed *ifmgd; in ieee80211_dynamic_ps_enable_work() local
1840 ifmgd = &sdata->u.mgd; in ieee80211_dynamic_ps_enable_work()
1874 !(ifmgd->flags & IEEE80211_STA_NULLFUNC_ACKED)) { in ieee80211_dynamic_ps_enable_work()
1888 (ifmgd->flags & IEEE80211_STA_NULLFUNC_ACKED)) { in ieee80211_dynamic_ps_enable_work()
1889 ifmgd->flags &= ~IEEE80211_STA_NULLFUNC_ACKED; in ieee80211_dynamic_ps_enable_work()
1924 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in __ieee80211_sta_handle_tspec_ac_params() local
1932 struct ieee80211_sta_tx_tspec *tx_tspec = &ifmgd->tx_tspec[ac]; in __ieee80211_sta_handle_tspec_ac_params()
1986 schedule_delayed_work(&ifmgd->tx_tspec_wk, in __ieee80211_sta_handle_tspec_ac_params()
2021 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_sta_wmm_params() local
2039 if (ifmgd->flags & IEEE80211_STA_UAPSD_ENABLED) in ieee80211_sta_wmm_params()
2040 uapsd_queues = ifmgd->uapsd_queues; in ieee80211_sta_wmm_params()
2048 if (count == ifmgd->wmm_last_param_set && in ieee80211_sta_wmm_params()
2049 mu_edca_count == ifmgd->mu_edca_last_param_set) in ieee80211_sta_wmm_params()
2051 ifmgd->wmm_last_param_set = count; in ieee80211_sta_wmm_params()
2052 ifmgd->mu_edca_last_param_set = mu_edca_count; in ieee80211_sta_wmm_params()
2149 ifmgd->tx_tspec[ac].downgraded); in ieee80211_sta_wmm_params()
2151 if (!ifmgd->tx_tspec[ac].downgraded && in ieee80211_sta_wmm_params()
2315 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_set_disassoc() local
2324 if (WARN_ON(!ifmgd->associated)) in ieee80211_set_disassoc()
2329 ifmgd->associated = NULL; in ieee80211_set_disassoc()
2367 !ifmgd->have_beacon) in ieee80211_set_disassoc()
2370 ieee80211_send_deauth_disassoc(sdata, ifmgd->bssid, in ieee80211_set_disassoc()
2371 ifmgd->bssid, stype, reason, in ieee80211_set_disassoc()
2380 eth_zero_addr(ifmgd->bssid); in ieee80211_set_disassoc()
2392 ifmgd->p2p_noa_index = -1; in ieee80211_set_disassoc()
2397 memset(&ifmgd->ht_capa, 0, sizeof(ifmgd->ht_capa)); in ieee80211_set_disassoc()
2398 memset(&ifmgd->ht_capa_mask, 0, sizeof(ifmgd->ht_capa_mask)); in ieee80211_set_disassoc()
2399 memset(&ifmgd->vht_capa, 0, sizeof(ifmgd->vht_capa)); in ieee80211_set_disassoc()
2400 memset(&ifmgd->vht_capa_mask, 0, sizeof(ifmgd->vht_capa_mask)); in ieee80211_set_disassoc()
2437 ifmgd->have_beacon = false; in ieee80211_set_disassoc()
2439 ifmgd->flags = 0; in ieee80211_set_disassoc()
2444 ifmgd->csa_waiting_bcn = false; in ieee80211_set_disassoc()
2445 ifmgd->csa_ignored_same_chan = false; in ieee80211_set_disassoc()
2454 memset(ifmgd->tx_tspec, 0, sizeof(ifmgd->tx_tspec)); in ieee80211_set_disassoc()
2455 cancel_delayed_work_sync(&ifmgd->tx_tspec_wk); in ieee80211_set_disassoc()
2462 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_reset_ap_probe() local
2466 if (!(ifmgd->flags & IEEE80211_STA_CONNECTION_POLL)) in ieee80211_reset_ap_probe()
2485 mod_timer(&ifmgd->conn_mon_timer, in ieee80211_reset_ap_probe()
2496 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_sta_tx_wmm_ac_notify() local
2507 tx_tspec = &ifmgd->tx_tspec[ac]; in ieee80211_sta_tx_wmm_ac_notify()
2518 schedule_delayed_work(&ifmgd->tx_tspec_wk, 0); in ieee80211_sta_tx_wmm_ac_notify()
2530 schedule_delayed_work(&ifmgd->tx_tspec_wk, 0); in ieee80211_sta_tx_wmm_ac_notify()
2566 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_mgd_probe_ap_send() local
2568 u8 *dst = ifmgd->associated->bssid; in ieee80211_mgd_probe_ap_send()
2577 if (ifmgd->probe_send_count >= unicast_limit) in ieee80211_mgd_probe_ap_send()
2587 ifmgd->probe_send_count++; in ieee80211_mgd_probe_ap_send()
2598 ifmgd->nullfunc_failed = false; in ieee80211_mgd_probe_ap_send()
2599 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HE)) in ieee80211_mgd_probe_ap_send()
2600 ifmgd->probe_send_count--; in ieee80211_mgd_probe_ap_send()
2607 ssid = ieee80211_bss_get_ie(ifmgd->associated, WLAN_EID_SSID); in ieee80211_mgd_probe_ap_send()
2615 ifmgd->associated->channel); in ieee80211_mgd_probe_ap_send()
2619 ifmgd->probe_timeout = jiffies + msecs_to_jiffies(probe_wait_ms); in ieee80211_mgd_probe_ap_send()
2620 run_again(sdata, ifmgd->probe_timeout); in ieee80211_mgd_probe_ap_send()
2626 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_mgd_probe_ap() local
2634 if (!ifmgd->associated) in ieee80211_mgd_probe_ap()
2663 if (ifmgd->flags & IEEE80211_STA_CONNECTION_POLL) in ieee80211_mgd_probe_ap()
2666 ifmgd->flags |= IEEE80211_STA_CONNECTION_POLL; in ieee80211_mgd_probe_ap()
2677 ifmgd->probe_send_count = 0; in ieee80211_mgd_probe_ap()
2687 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_ap_probereq_get() local
2698 if (ifmgd->associated) in ieee80211_ap_probereq_get()
2699 cbss = ifmgd->associated; in ieee80211_ap_probereq_get()
2700 else if (ifmgd->auth_data) in ieee80211_ap_probereq_get()
2701 cbss = ifmgd->auth_data->bss; in ieee80211_ap_probereq_get()
2702 else if (ifmgd->assoc_data) in ieee80211_ap_probereq_get()
2703 cbss = ifmgd->assoc_data->bss; in ieee80211_ap_probereq_get()
2746 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in __ieee80211_disconnect() local
2751 if (!ifmgd->associated) { in __ieee80211_disconnect()
2761 cfg80211_unlink_bss(local->hw.wiphy, ifmgd->associated); in __ieee80211_disconnect()
2768 ifmgd->csa_waiting_bcn = false; in __ieee80211_disconnect()
2787 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_beacon_connection_loss_work() local
2789 if (ifmgd->associated) in ieee80211_beacon_connection_loss_work()
2790 ifmgd->beacon_loss_count++; in ieee80211_beacon_connection_loss_work()
2792 if (ifmgd->connection_loss) { in ieee80211_beacon_connection_loss_work()
2794 ifmgd->bssid); in ieee80211_beacon_connection_loss_work()
2927 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_mark_sta_auth() local
2932 ifmgd->auth_data->done = true; in ieee80211_mark_sta_auth()
2933 ifmgd->auth_data->timeout = jiffies + IEEE80211_AUTH_WAIT_ASSOC; in ieee80211_mark_sta_auth()
2934 ifmgd->auth_data->timeout_started = true; in ieee80211_mark_sta_auth()
2935 run_again(sdata, ifmgd->auth_data->timeout); in ieee80211_mark_sta_auth()
2959 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_rx_mgmt_auth() local
2972 if (!ifmgd->auth_data || ifmgd->auth_data->done) in ieee80211_rx_mgmt_auth()
2975 memcpy(bssid, ifmgd->auth_data->bss->bssid, ETH_ALEN); in ieee80211_rx_mgmt_auth()
2984 if (auth_alg != ifmgd->auth_data->algorithm || in ieee80211_rx_mgmt_auth()
2986 auth_transaction != ifmgd->auth_data->expected_transaction) || in ieee80211_rx_mgmt_auth()
2988 (auth_transaction < ifmgd->auth_data->expected_transaction || in ieee80211_rx_mgmt_auth()
2991 mgmt->sa, auth_alg, ifmgd->auth_data->algorithm, in ieee80211_rx_mgmt_auth()
2993 ifmgd->auth_data->expected_transaction); in ieee80211_rx_mgmt_auth()
3006 ifmgd->auth_data->waiting = true; in ieee80211_rx_mgmt_auth()
3007 ifmgd->auth_data->timeout = in ieee80211_rx_mgmt_auth()
3009 ifmgd->auth_data->timeout_started = true; in ieee80211_rx_mgmt_auth()
3010 run_again(sdata, ifmgd->auth_data->timeout); in ieee80211_rx_mgmt_auth()
3023 switch (ifmgd->auth_data->algorithm) { in ieee80211_rx_mgmt_auth()
3033 if (ifmgd->auth_data->expected_transaction != 4) { in ieee80211_rx_mgmt_auth()
3041 ifmgd->auth_data->algorithm); in ieee80211_rx_mgmt_auth()
3047 if (ifmgd->auth_data->algorithm != WLAN_AUTH_SAE || in ieee80211_rx_mgmt_auth()
3049 ifmgd->auth_data->expected_transaction == 2)) { in ieee80211_rx_mgmt_auth()
3052 } else if (ifmgd->auth_data->algorithm == WLAN_AUTH_SAE && in ieee80211_rx_mgmt_auth()
3055 ifmgd->auth_data->peer_confirmed = true; in ieee80211_rx_mgmt_auth()
3121 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_rx_mgmt_deauth() local
3134 if (ifmgd->associated && in ieee80211_rx_mgmt_deauth()
3135 ether_addr_equal(mgmt->bssid, ifmgd->associated->bssid)) { in ieee80211_rx_mgmt_deauth()
3136 const u8 *bssid = ifmgd->associated->bssid; in ieee80211_rx_mgmt_deauth()
3149 if (ifmgd->assoc_data && in ieee80211_rx_mgmt_deauth()
3150 ether_addr_equal(mgmt->bssid, ifmgd->assoc_data->bss->bssid)) { in ieee80211_rx_mgmt_deauth()
3151 const u8 *bssid = ifmgd->assoc_data->bss->bssid; in ieee80211_rx_mgmt_deauth()
3169 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_rx_mgmt_disassoc() local
3177 if (!ifmgd->associated || in ieee80211_rx_mgmt_disassoc()
3178 !ether_addr_equal(mgmt->bssid, ifmgd->associated->bssid)) in ieee80211_rx_mgmt_disassoc()
3278 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_assoc_success() local
3285 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_assoc_success()
3314 ifmgd->broken_ap = false; in ieee80211_assoc_success()
3320 ifmgd->broken_ap = true; in ieee80211_assoc_success()
3329 ifmgd->tdls_chan_switch_prohibited = in ieee80211_assoc_success()
3342 (!(ifmgd->flags & IEEE80211_STA_DISABLE_HT) && in ieee80211_assoc_success()
3344 (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT) && in ieee80211_assoc_success()
3374 !(ifmgd->flags & IEEE80211_STA_DISABLE_HT)) { in ieee80211_assoc_success()
3380 !(ifmgd->flags & IEEE80211_STA_DISABLE_HT)) { in ieee80211_assoc_success()
3386 !(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) { in ieee80211_assoc_success()
3392 !(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) { in ieee80211_assoc_success()
3404 if (!is_6ghz && !(ifmgd->flags & IEEE80211_STA_DISABLE_HT) && in ieee80211_assoc_success()
3412 if (!is_6ghz && !(ifmgd->flags & IEEE80211_STA_DISABLE_VHT) && in ieee80211_assoc_success()
3420 if (is_6ghz && !(ifmgd->flags & IEEE80211_STA_DISABLE_HE) && in ieee80211_assoc_success()
3447 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HE) && in ieee80211_assoc_success()
3457 if (elems->ht_cap_elem && !(ifmgd->flags & IEEE80211_STA_DISABLE_HT)) in ieee80211_assoc_success()
3461 if (elems->vht_cap_elem && !(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) in ieee80211_assoc_success()
3465 if (elems->he_operation && !(ifmgd->flags & IEEE80211_STA_DISABLE_HE) && in ieee80211_assoc_success()
3565 if (ifmgd->flags & IEEE80211_STA_MFP_ENABLED) { in ieee80211_assoc_success()
3576 if (!err && !(ifmgd->flags & IEEE80211_STA_CONTROL_PORT)) in ieee80211_assoc_success()
3599 ifmgd->wmm_last_param_set = -1; in ieee80211_assoc_success()
3600 ifmgd->mu_edca_last_param_set = -1; in ieee80211_assoc_success()
3602 if (ifmgd->flags & IEEE80211_STA_DISABLE_WMM) { in ieee80211_assoc_success()
3616 ifmgd->flags |= IEEE80211_STA_DISABLE_WMM; in ieee80211_assoc_success()
3641 if (ifmgd->use_4addr) in ieee80211_assoc_success()
3661 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_rx_mgmt_assoc_resp() local
3662 struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; in ieee80211_rx_mgmt_assoc_resp()
3763 ifmgd->assoc_req_ies, ifmgd->assoc_req_ies_len); in ieee80211_rx_mgmt_assoc_resp()
3793 struct ieee80211_if_managed *ifmgd; in ieee80211_rx_mgmt_probe_resp() local
3798 ifmgd = &sdata->u.mgd; in ieee80211_rx_mgmt_probe_resp()
3825 if (ifmgd->associated && in ieee80211_rx_mgmt_probe_resp()
3826 ether_addr_equal(mgmt->bssid, ifmgd->associated->bssid)) in ieee80211_rx_mgmt_probe_resp()
3855 struct ieee80211_if_managed *ifmgd, in ieee80211_handle_beacon_sig() argument
3862 if (ifmgd->flags & IEEE80211_STA_RESET_SIGNAL_AVE) { in ieee80211_handle_beacon_sig()
3863 ifmgd->flags &= ~IEEE80211_STA_RESET_SIGNAL_AVE; in ieee80211_handle_beacon_sig()
3864 ewma_beacon_signal_init(&ifmgd->ave_beacon_signal); in ieee80211_handle_beacon_sig()
3865 ifmgd->last_cqm_event_signal = 0; in ieee80211_handle_beacon_sig()
3866 ifmgd->count_beacon_signal = 1; in ieee80211_handle_beacon_sig()
3867 ifmgd->last_ave_beacon_signal = 0; in ieee80211_handle_beacon_sig()
3869 ifmgd->count_beacon_signal++; in ieee80211_handle_beacon_sig()
3872 ewma_beacon_signal_add(&ifmgd->ave_beacon_signal, -rx_status->signal); in ieee80211_handle_beacon_sig()
3874 if (ifmgd->rssi_min_thold != ifmgd->rssi_max_thold && in ieee80211_handle_beacon_sig()
3875 ifmgd->count_beacon_signal >= IEEE80211_SIGNAL_AVE_MIN_COUNT) { in ieee80211_handle_beacon_sig()
3876 int sig = -ewma_beacon_signal_read(&ifmgd->ave_beacon_signal); in ieee80211_handle_beacon_sig()
3877 int last_sig = ifmgd->last_ave_beacon_signal; in ieee80211_handle_beacon_sig()
3886 if (sig > ifmgd->rssi_max_thold && in ieee80211_handle_beacon_sig()
3887 (last_sig <= ifmgd->rssi_min_thold || last_sig == 0)) { in ieee80211_handle_beacon_sig()
3888 ifmgd->last_ave_beacon_signal = sig; in ieee80211_handle_beacon_sig()
3891 } else if (sig < ifmgd->rssi_min_thold && in ieee80211_handle_beacon_sig()
3892 (last_sig >= ifmgd->rssi_max_thold || in ieee80211_handle_beacon_sig()
3894 ifmgd->last_ave_beacon_signal = sig; in ieee80211_handle_beacon_sig()
3901 ifmgd->count_beacon_signal >= IEEE80211_SIGNAL_AVE_MIN_COUNT && in ieee80211_handle_beacon_sig()
3903 int sig = -ewma_beacon_signal_read(&ifmgd->ave_beacon_signal); in ieee80211_handle_beacon_sig()
3904 int last_event = ifmgd->last_cqm_event_signal; in ieee80211_handle_beacon_sig()
3910 ifmgd->last_cqm_event_signal = sig; in ieee80211_handle_beacon_sig()
3917 ifmgd->last_cqm_event_signal = sig; in ieee80211_handle_beacon_sig()
3926 ifmgd->count_beacon_signal >= IEEE80211_SIGNAL_AVE_MIN_COUNT) { in ieee80211_handle_beacon_sig()
3927 int sig = -ewma_beacon_signal_read(&ifmgd->ave_beacon_signal); in ieee80211_handle_beacon_sig()
3928 int last_event = ifmgd->last_cqm_event_signal; in ieee80211_handle_beacon_sig()
3934 ifmgd->last_cqm_event_signal = sig; in ieee80211_handle_beacon_sig()
3941 ifmgd->last_cqm_event_signal = sig; in ieee80211_handle_beacon_sig()
3964 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_rx_mgmt_beacon() local
4012 if (ifmgd->assoc_data && ifmgd->assoc_data->need_beacon && in ieee80211_rx_mgmt_beacon()
4013 ieee80211_rx_our_beacon(bssid, ifmgd->assoc_data->bss)) { in ieee80211_rx_mgmt_beacon()
4017 ifmgd->assoc_data->bss->bssid); in ieee80211_rx_mgmt_beacon()
4022 ifmgd->dtim_period = elems.dtim_period; in ieee80211_rx_mgmt_beacon()
4023 ifmgd->have_beacon = true; in ieee80211_rx_mgmt_beacon()
4024 ifmgd->assoc_data->need_beacon = false; in ieee80211_rx_mgmt_beacon()
4046 ifmgd->assoc_data->timeout = jiffies; in ieee80211_rx_mgmt_beacon()
4047 ifmgd->assoc_data->timeout_started = true; in ieee80211_rx_mgmt_beacon()
4048 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_rx_mgmt_beacon()
4053 if (!ifmgd->associated || in ieee80211_rx_mgmt_beacon()
4054 !ieee80211_rx_our_beacon(bssid, ifmgd->associated)) in ieee80211_rx_mgmt_beacon()
4056 bssid = ifmgd->associated->bssid; in ieee80211_rx_mgmt_beacon()
4059 ieee80211_handle_beacon_sig(sdata, ifmgd, bss_conf, in ieee80211_rx_mgmt_beacon()
4062 if (ifmgd->flags & IEEE80211_STA_CONNECTION_POLL) { in ieee80211_rx_mgmt_beacon()
4129 ifmgd->beacon_crc_valid = false; in ieee80211_rx_mgmt_beacon()
4136 ifmgd->beacon_crc_valid = false; in ieee80211_rx_mgmt_beacon()
4140 if (ifmgd->csa_waiting_bcn) in ieee80211_rx_mgmt_beacon()
4160 if ((ncrc == ifmgd->beacon_crc && ifmgd->beacon_crc_valid) || in ieee80211_rx_mgmt_beacon()
4163 ifmgd->beacon_crc = ncrc; in ieee80211_rx_mgmt_beacon()
4164 ifmgd->beacon_crc_valid = true; in ieee80211_rx_mgmt_beacon()
4172 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_WMM) && in ieee80211_rx_mgmt_beacon()
4182 if (!ifmgd->have_beacon) { in ieee80211_rx_mgmt_beacon()
4187 ifmgd->have_beacon = true; in ieee80211_rx_mgmt_beacon()
4379 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_auth() local
4380 struct ieee80211_mgd_auth_data *auth_data = ifmgd->auth_data; in ieee80211_auth()
4507 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_sta_work() local
4511 if (ifmgd->status_received) { in ieee80211_sta_work()
4512 __le16 fc = ifmgd->status_fc; in ieee80211_sta_work()
4513 bool status_acked = ifmgd->status_acked; in ieee80211_sta_work()
4515 ifmgd->status_received = false; in ieee80211_sta_work()
4516 if (ifmgd->auth_data && ieee80211_is_auth(fc)) { in ieee80211_sta_work()
4518 if (ifmgd->auth_data->algorithm == in ieee80211_sta_work()
4520 ifmgd->auth_data->timeout = in ieee80211_sta_work()
4524 ifmgd->auth_data->timeout = in ieee80211_sta_work()
4527 run_again(sdata, ifmgd->auth_data->timeout); in ieee80211_sta_work()
4529 ifmgd->auth_data->timeout = jiffies - 1; in ieee80211_sta_work()
4531 ifmgd->auth_data->timeout_started = true; in ieee80211_sta_work()
4532 } else if (ifmgd->assoc_data && in ieee80211_sta_work()
4536 ifmgd->assoc_data->timeout = in ieee80211_sta_work()
4538 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_sta_work()
4540 ifmgd->assoc_data->timeout = jiffies - 1; in ieee80211_sta_work()
4542 ifmgd->assoc_data->timeout_started = true; in ieee80211_sta_work()
4546 if (ifmgd->auth_data && ifmgd->auth_data->timeout_started && in ieee80211_sta_work()
4547 time_after(jiffies, ifmgd->auth_data->timeout)) { in ieee80211_sta_work()
4548 if (ifmgd->auth_data->done || ifmgd->auth_data->waiting) { in ieee80211_sta_work()
4562 memcpy(bssid, ifmgd->auth_data->bss->bssid, ETH_ALEN); in ieee80211_sta_work()
4569 } else if (ifmgd->auth_data && ifmgd->auth_data->timeout_started) in ieee80211_sta_work()
4570 run_again(sdata, ifmgd->auth_data->timeout); in ieee80211_sta_work()
4572 if (ifmgd->assoc_data && ifmgd->assoc_data->timeout_started && in ieee80211_sta_work()
4573 time_after(jiffies, ifmgd->assoc_data->timeout)) { in ieee80211_sta_work()
4574 if ((ifmgd->assoc_data->need_beacon && !ifmgd->have_beacon) || in ieee80211_sta_work()
4576 struct cfg80211_bss *bss = ifmgd->assoc_data->bss; in ieee80211_sta_work()
4587 } else if (ifmgd->assoc_data && ifmgd->assoc_data->timeout_started) in ieee80211_sta_work()
4588 run_again(sdata, ifmgd->assoc_data->timeout); in ieee80211_sta_work()
4590 if (ifmgd->flags & IEEE80211_STA_CONNECTION_POLL && in ieee80211_sta_work()
4591 ifmgd->associated) { in ieee80211_sta_work()
4595 memcpy(bssid, ifmgd->associated->bssid, ETH_ALEN); in ieee80211_sta_work()
4603 if (!ifmgd->probe_send_count) in ieee80211_sta_work()
4605 else if (ifmgd->nullfunc_failed) { in ieee80211_sta_work()
4606 if (ifmgd->probe_send_count < max_tries) { in ieee80211_sta_work()
4609 bssid, ifmgd->probe_send_count, in ieee80211_sta_work()
4620 } else if (time_is_after_jiffies(ifmgd->probe_timeout)) in ieee80211_sta_work()
4621 run_again(sdata, ifmgd->probe_timeout); in ieee80211_sta_work()
4628 } else if (ifmgd->probe_send_count < max_tries) { in ieee80211_sta_work()
4632 ifmgd->probe_send_count, max_tries); in ieee80211_sta_work()
4655 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_sta_bcn_mon_timer() local
4657 if (sdata->vif.csa_active && !ifmgd->csa_waiting_bcn) in ieee80211_sta_bcn_mon_timer()
4672 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_sta_conn_mon_timer() local
4677 if (sdata->vif.csa_active && !ifmgd->csa_waiting_bcn) in ieee80211_sta_conn_mon_timer()
4680 sta = sta_info_get(sdata, ifmgd->bssid); in ieee80211_sta_conn_mon_timer()
4693 mod_timer(&ifmgd->conn_mon_timer, round_jiffies_up(timeout)); in ieee80211_sta_conn_mon_timer()
4697 ieee80211_queue_work(&local->hw, &ifmgd->monitor_work); in ieee80211_sta_conn_mon_timer()
4724 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_mgd_quiesce() local
4729 if (ifmgd->auth_data || ifmgd->assoc_data) { in ieee80211_mgd_quiesce()
4730 const u8 *bssid = ifmgd->auth_data ? in ieee80211_mgd_quiesce()
4731 ifmgd->auth_data->bss->bssid : in ieee80211_mgd_quiesce()
4732 ifmgd->assoc_data->bss->bssid; in ieee80211_mgd_quiesce()
4743 if (ifmgd->assoc_data) in ieee80211_mgd_quiesce()
4745 if (ifmgd->auth_data) in ieee80211_mgd_quiesce()
4768 if (ifmgd->associated && !sdata->local->wowlan) { in ieee80211_mgd_quiesce()
4775 memcpy(bssid, ifmgd->associated->bssid, ETH_ALEN); in ieee80211_mgd_quiesce()
4784 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_sta_restart() local
4787 if (!ifmgd->associated) { in ieee80211_sta_restart()
4796 ifmgd->associated->bssid, in ieee80211_sta_restart()
4809 struct ieee80211_if_managed *ifmgd; in ieee80211_sta_setup_sdata() local
4811 ifmgd = &sdata->u.mgd; in ieee80211_sta_setup_sdata()
4812 INIT_WORK(&ifmgd->monitor_work, ieee80211_sta_monitor_work); in ieee80211_sta_setup_sdata()
4813 INIT_WORK(&ifmgd->chswitch_work, ieee80211_chswitch_work); in ieee80211_sta_setup_sdata()
4814 INIT_WORK(&ifmgd->beacon_connection_loss_work, in ieee80211_sta_setup_sdata()
4816 INIT_WORK(&ifmgd->csa_connection_drop_work, in ieee80211_sta_setup_sdata()
4818 INIT_WORK(&ifmgd->request_smps_work, ieee80211_request_smps_mgd_work); in ieee80211_sta_setup_sdata()
4819 INIT_DELAYED_WORK(&ifmgd->tdls_peer_del_work, in ieee80211_sta_setup_sdata()
4821 timer_setup(&ifmgd->timer, ieee80211_sta_timer, 0); in ieee80211_sta_setup_sdata()
4822 timer_setup(&ifmgd->bcn_mon_timer, ieee80211_sta_bcn_mon_timer, 0); in ieee80211_sta_setup_sdata()
4823 timer_setup(&ifmgd->conn_mon_timer, ieee80211_sta_conn_mon_timer, 0); in ieee80211_sta_setup_sdata()
4824 timer_setup(&ifmgd->chswitch_timer, ieee80211_chswitch_timer, 0); in ieee80211_sta_setup_sdata()
4825 INIT_DELAYED_WORK(&ifmgd->tx_tspec_wk, in ieee80211_sta_setup_sdata()
4828 ifmgd->flags = 0; in ieee80211_sta_setup_sdata()
4829 ifmgd->powersave = sdata->wdev.ps; in ieee80211_sta_setup_sdata()
4830 ifmgd->uapsd_queues = sdata->local->hw.uapsd_queues; in ieee80211_sta_setup_sdata()
4831 ifmgd->uapsd_max_sp_len = sdata->local->hw.uapsd_max_sp_len; in ieee80211_sta_setup_sdata()
4832 ifmgd->p2p_noa_index = -1; in ieee80211_sta_setup_sdata()
4835 ifmgd->req_smps = IEEE80211_SMPS_AUTOMATIC; in ieee80211_sta_setup_sdata()
4837 ifmgd->req_smps = IEEE80211_SMPS_OFF; in ieee80211_sta_setup_sdata()
4840 spin_lock_init(&ifmgd->teardown_lock); in ieee80211_sta_setup_sdata()
4841 ifmgd->teardown_skb = NULL; in ieee80211_sta_setup_sdata()
4842 ifmgd->orig_teardown_skb = NULL; in ieee80211_sta_setup_sdata()
4862 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_ht_vht_rx_chains() local
4868 if (ifmgd->flags & IEEE80211_STA_DISABLE_HT) in ieee80211_ht_vht_rx_chains()
4881 if (ifmgd->flags & IEEE80211_STA_DISABLE_VHT) in ieee80211_ht_vht_rx_chains()
4969 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_prep_channel() local
4986 ifmgd->flags &= ~(IEEE80211_STA_DISABLE_40MHZ | in ieee80211_prep_channel()
4992 ifmgd->flags |= IEEE80211_STA_DISABLE_HT; in ieee80211_prep_channel()
4993 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; in ieee80211_prep_channel()
4994 ifmgd->flags |= IEEE80211_STA_DISABLE_HE; in ieee80211_prep_channel()
4998 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; in ieee80211_prep_channel()
4999 ifmgd->flags |= IEEE80211_STA_DISABLE_HE; in ieee80211_prep_channel()
5003 ifmgd->flags |= IEEE80211_STA_DISABLE_HE; in ieee80211_prep_channel()
5007 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HT) && !is_6ghz) { in ieee80211_prep_channel()
5019 ifmgd->flags |= IEEE80211_STA_DISABLE_HT; in ieee80211_prep_channel()
5024 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT) && !is_6ghz) { in ieee80211_prep_channel()
5035 ifmgd->flags |= IEEE80211_STA_DISABLE_HT; in ieee80211_prep_channel()
5036 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; in ieee80211_prep_channel()
5037 ifmgd->flags |= IEEE80211_STA_DISABLE_HE; in ieee80211_prep_channel()
5042 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; in ieee80211_prep_channel()
5047 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HE)) { in ieee80211_prep_channel()
5061 ifmgd->flags |= IEEE80211_STA_DISABLE_HE; in ieee80211_prep_channel()
5076 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; in ieee80211_prep_channel()
5090 ifmgd->flags |= ieee80211_determine_chantype(sdata, sband, in ieee80211_prep_channel()
5102 if (ifmgd->flags & IEEE80211_STA_DISABLE_HE && is_6ghz) { in ieee80211_prep_channel()
5125 ifmgd->flags |= ieee80211_chandef_downgrade(&chandef); in ieee80211_prep_channel()
5173 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_prep_connection() local
5182 if (WARN_ON(!ifmgd->auth_data && !ifmgd->assoc_data)) in ieee80211_prep_connection()
5272 memcpy(ifmgd->bssid, cbss->bssid, ETH_ALEN); in ieee80211_prep_connection()
5332 WARN_ON_ONCE(!ether_addr_equal(ifmgd->bssid, cbss->bssid)); in ieee80211_prep_connection()
5346 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_mgd_auth() local
5385 if (ifmgd->assoc_data) in ieee80211_mgd_auth()
5412 cont_auth = ifmgd->auth_data && req->bss == ifmgd->auth_data->bss; in ieee80211_mgd_auth()
5430 if (ifmgd->auth_data) { in ieee80211_mgd_auth()
5433 ifmgd->auth_data->peer_confirmed; in ieee80211_mgd_auth()
5439 ifmgd->auth_data = auth_data; in ieee80211_mgd_auth()
5450 if (ifmgd->associated) { in ieee80211_mgd_auth()
5455 ifmgd->associated->bssid, req->bss->bssid); in ieee80211_mgd_auth()
5482 eth_zero_addr(ifmgd->bssid); in ieee80211_mgd_auth()
5484 ifmgd->auth_data = NULL; in ieee80211_mgd_auth()
5498 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_mgd_assoc() local
5522 if (ifmgd->associated) { in ieee80211_mgd_assoc()
5527 ifmgd->associated->bssid, req->bss->bssid); in ieee80211_mgd_assoc()
5537 if (ifmgd->auth_data && !ifmgd->auth_data->done) { in ieee80211_mgd_assoc()
5542 if (ifmgd->assoc_data) { in ieee80211_mgd_assoc()
5547 if (ifmgd->auth_data) { in ieee80211_mgd_assoc()
5551 match = ether_addr_equal(ifmgd->bssid, req->bss->bssid); in ieee80211_mgd_assoc()
5557 ifmgd->beacon_crc_valid = false; in ieee80211_mgd_assoc()
5573 ifmgd->flags |= IEEE80211_STA_DISABLE_HT; in ieee80211_mgd_assoc()
5574 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; in ieee80211_mgd_assoc()
5575 ifmgd->flags |= IEEE80211_STA_DISABLE_HE; in ieee80211_mgd_assoc()
5585 ifmgd->flags |= IEEE80211_STA_DISABLE_HT; in ieee80211_mgd_assoc()
5586 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; in ieee80211_mgd_assoc()
5587 ifmgd->flags |= IEEE80211_STA_DISABLE_HE; in ieee80211_mgd_assoc()
5592 memcpy(&ifmgd->ht_capa, &req->ht_capa, sizeof(ifmgd->ht_capa)); in ieee80211_mgd_assoc()
5593 memcpy(&ifmgd->ht_capa_mask, &req->ht_capa_mask, in ieee80211_mgd_assoc()
5594 sizeof(ifmgd->ht_capa_mask)); in ieee80211_mgd_assoc()
5596 memcpy(&ifmgd->vht_capa, &req->vht_capa, sizeof(ifmgd->vht_capa)); in ieee80211_mgd_assoc()
5597 memcpy(&ifmgd->vht_capa_mask, &req->vht_capa_mask, in ieee80211_mgd_assoc()
5598 sizeof(ifmgd->vht_capa_mask)); in ieee80211_mgd_assoc()
5600 memcpy(&ifmgd->s1g_capa, &req->s1g_capa, sizeof(ifmgd->s1g_capa)); in ieee80211_mgd_assoc()
5601 memcpy(&ifmgd->s1g_capa_mask, &req->s1g_capa_mask, in ieee80211_mgd_assoc()
5602 sizeof(ifmgd->s1g_capa_mask)); in ieee80211_mgd_assoc()
5626 if (ifmgd->req_smps == IEEE80211_SMPS_AUTOMATIC) { in ieee80211_mgd_assoc()
5627 if (ifmgd->powersave) in ieee80211_mgd_assoc()
5632 sdata->smps_mode = ifmgd->req_smps; in ieee80211_mgd_assoc()
5644 ifmgd->flags |= IEEE80211_STA_DISABLE_HT; in ieee80211_mgd_assoc()
5650 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT | in ieee80211_mgd_assoc()
5662 ifmgd->flags |= IEEE80211_STA_UAPSD_ENABLED; in ieee80211_mgd_assoc()
5665 ifmgd->flags &= ~IEEE80211_STA_UAPSD_ENABLED; in ieee80211_mgd_assoc()
5672 ifmgd->mfp = IEEE80211_MFP_REQUIRED; in ieee80211_mgd_assoc()
5673 ifmgd->flags |= IEEE80211_STA_MFP_ENABLED; in ieee80211_mgd_assoc()
5675 ifmgd->mfp = IEEE80211_MFP_DISABLED; in ieee80211_mgd_assoc()
5676 ifmgd->flags &= ~IEEE80211_STA_MFP_ENABLED; in ieee80211_mgd_assoc()
5680 ifmgd->flags |= IEEE80211_STA_ENABLE_RRM; in ieee80211_mgd_assoc()
5682 ifmgd->flags &= ~IEEE80211_STA_ENABLE_RRM; in ieee80211_mgd_assoc()
5685 ifmgd->flags |= IEEE80211_STA_CONTROL_PORT; in ieee80211_mgd_assoc()
5687 ifmgd->flags &= ~IEEE80211_STA_CONTROL_PORT; in ieee80211_mgd_assoc()
5699 ifmgd->assoc_data = assoc_data; in ieee80211_mgd_assoc()
5700 ifmgd->dtim_period = 0; in ieee80211_mgd_assoc()
5701 ifmgd->have_beacon = false; in ieee80211_mgd_assoc()
5704 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HT)) { in ieee80211_mgd_assoc()
5714 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_40MHZ) && in ieee80211_mgd_assoc()
5719 if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT) && in ieee80211_mgd_assoc()
5725 ifmgd->flags |= IEEE80211_STA_DISABLE_HT; in ieee80211_mgd_assoc()
5726 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; in ieee80211_mgd_assoc()
5727 ifmgd->flags |= IEEE80211_STA_DISABLE_HE; in ieee80211_mgd_assoc()
5731 ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; in ieee80211_mgd_assoc()
5747 ifmgd->bssid); in ieee80211_mgd_assoc()
5756 &ifmgd->dtim_period); in ieee80211_mgd_assoc()
5758 ifmgd->have_beacon = true; in ieee80211_mgd_assoc()
5807 eth_zero_addr(ifmgd->bssid); in ieee80211_mgd_assoc()
5809 ifmgd->assoc_data = NULL; in ieee80211_mgd_assoc()
5818 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_mgd_deauth() local
5822 if (ifmgd->auth_data && in ieee80211_mgd_deauth()
5823 ether_addr_equal(ifmgd->auth_data->bss->bssid, req->bssid)) { in ieee80211_mgd_deauth()
5842 if (ifmgd->assoc_data && in ieee80211_mgd_deauth()
5843 ether_addr_equal(ifmgd->assoc_data->bss->bssid, req->bssid)) { in ieee80211_mgd_deauth()
5861 if (ifmgd->associated && in ieee80211_mgd_deauth()
5862 ether_addr_equal(ifmgd->associated->bssid, req->bssid)) { in ieee80211_mgd_deauth()
5882 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_mgd_disassoc() local
5892 if (ifmgd->associated != req->bss) in ieee80211_mgd_disassoc()
5912 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_mgd_stop() local
5919 cancel_work_sync(&ifmgd->monitor_work); in ieee80211_mgd_stop()
5920 cancel_work_sync(&ifmgd->beacon_connection_loss_work); in ieee80211_mgd_stop()
5921 cancel_work_sync(&ifmgd->request_smps_work); in ieee80211_mgd_stop()
5922 cancel_work_sync(&ifmgd->csa_connection_drop_work); in ieee80211_mgd_stop()
5923 cancel_work_sync(&ifmgd->chswitch_work); in ieee80211_mgd_stop()
5924 cancel_delayed_work_sync(&ifmgd->tdls_peer_del_work); in ieee80211_mgd_stop()
5927 if (ifmgd->assoc_data) { in ieee80211_mgd_stop()
5928 struct cfg80211_bss *bss = ifmgd->assoc_data->bss; in ieee80211_mgd_stop()
5932 if (ifmgd->auth_data) in ieee80211_mgd_stop()
5934 spin_lock_bh(&ifmgd->teardown_lock); in ieee80211_mgd_stop()
5935 if (ifmgd->teardown_skb) { in ieee80211_mgd_stop()
5936 kfree_skb(ifmgd->teardown_skb); in ieee80211_mgd_stop()
5937 ifmgd->teardown_skb = NULL; in ieee80211_mgd_stop()
5938 ifmgd->orig_teardown_skb = NULL; in ieee80211_mgd_stop()
5940 kfree(ifmgd->assoc_req_ies); in ieee80211_mgd_stop()
5941 ifmgd->assoc_req_ies = NULL; in ieee80211_mgd_stop()
5942 ifmgd->assoc_req_ies_len = 0; in ieee80211_mgd_stop()
5943 spin_unlock_bh(&ifmgd->teardown_lock); in ieee80211_mgd_stop()
5944 del_timer_sync(&ifmgd->timer); in ieee80211_mgd_stop()