Lines Matching refs:sdata
317 struct ieee80211_sub_if_data *sdata; in __ieee80211_scan_completed() local
382 list_for_each_entry_rcu(sdata, &local->interfaces, list) { in __ieee80211_scan_completed()
383 if (ieee80211_sdata_running(sdata)) in __ieee80211_scan_completed()
384 ieee80211_queue_work(&sdata->local->hw, &sdata->work); in __ieee80211_scan_completed()
405 struct ieee80211_sub_if_data *sdata) in ieee80211_start_sw_scan() argument
424 drv_sw_scan_start(local, sdata, local->scan_addr); in ieee80211_start_sw_scan()
447 struct ieee80211_sub_if_data *sdata) in ieee80211_can_scan() argument
455 if (sdata->vif.type == NL80211_IFTYPE_STATION && in ieee80211_can_scan()
456 sdata->u.mgd.flags & IEEE80211_STA_CONNECTION_POLL) in ieee80211_can_scan()
483 struct ieee80211_sub_if_data *sdata; in ieee80211_scan_state_send_probe() local
495 sdata = rcu_dereference_protected(local->scan_sdata, in ieee80211_scan_state_send_probe()
500 sdata, local->scan_addr, NULL, in ieee80211_scan_state_send_probe()
514 static int __ieee80211_start_scan(struct ieee80211_sub_if_data *sdata, in __ieee80211_start_scan() argument
517 struct ieee80211_local *local = sdata->local; in __ieee80211_start_scan()
525 if (!ieee80211_can_scan(local, sdata)) { in __ieee80211_start_scan()
528 rcu_assign_pointer(local->scan_sdata, sdata); in __ieee80211_start_scan()
578 rcu_assign_pointer(local->scan_sdata, sdata); in __ieee80211_start_scan()
585 memcpy(local->scan_addr, sdata->vif.addr, ETH_ALEN); in __ieee80211_start_scan()
603 drv_sw_scan_start(local, sdata, local->scan_addr); in __ieee80211_start_scan()
632 rc = drv_hw_scan(local, sdata, local->hw_scan_req); in __ieee80211_start_scan()
634 rc = ieee80211_start_sw_scan(local, sdata); in __ieee80211_start_scan()
669 struct ieee80211_sub_if_data *sdata; in ieee80211_scan_state_decision() local
680 list_for_each_entry(sdata, &local->interfaces, list) { in ieee80211_scan_state_decision()
681 if (!ieee80211_sdata_running(sdata)) in ieee80211_scan_state_decision()
684 if (sdata->vif.type == NL80211_IFTYPE_STATION) { in ieee80211_scan_state_decision()
685 if (sdata->u.mgd.associated) { in ieee80211_scan_state_decision()
688 if (!qdisc_all_tx_empty(sdata->dev)) { in ieee80211_scan_state_decision()
839 struct ieee80211_sub_if_data *sdata; in ieee80211_scan_work() local
851 sdata = rcu_dereference_protected(local->scan_sdata, in ieee80211_scan_work()
867 if (!sdata || !scan_req) in ieee80211_scan_work()
876 rc = __ieee80211_start_scan(sdata, scan_req); in ieee80211_scan_work()
891 if (!ieee80211_sdata_running(sdata)) { in ieee80211_scan_work()
932 int ieee80211_request_scan(struct ieee80211_sub_if_data *sdata, in ieee80211_request_scan() argument
937 mutex_lock(&sdata->local->mtx); in ieee80211_request_scan()
938 res = __ieee80211_start_scan(sdata, req); in ieee80211_request_scan()
939 mutex_unlock(&sdata->local->mtx); in ieee80211_request_scan()
944 int ieee80211_request_ibss_scan(struct ieee80211_sub_if_data *sdata, in ieee80211_request_ibss_scan() argument
950 struct ieee80211_local *local = sdata->local; in ieee80211_request_ibss_scan()
1008 ret = __ieee80211_start_scan(sdata, sdata->local->int_scan_req); in ieee80211_request_ibss_scan()
1077 int __ieee80211_request_sched_scan_start(struct ieee80211_sub_if_data *sdata, in __ieee80211_request_sched_scan_start() argument
1080 struct ieee80211_local *local = sdata->local; in __ieee80211_request_sched_scan_start()
1117 ret = drv_sched_scan_start(local, sdata, req, &sched_scan_ies); in __ieee80211_request_sched_scan_start()
1119 rcu_assign_pointer(local->sched_scan_sdata, sdata); in __ieee80211_request_sched_scan_start()
1135 int ieee80211_request_sched_scan_start(struct ieee80211_sub_if_data *sdata, in ieee80211_request_sched_scan_start() argument
1138 struct ieee80211_local *local = sdata->local; in ieee80211_request_sched_scan_start()
1148 ret = __ieee80211_request_sched_scan_start(sdata, req); in ieee80211_request_sched_scan_start()