Lines Matching defs:sdata
235 static bool ieee80211_scan_accept_presp(struct ieee80211_sub_if_data *sdata,
238 if (!sdata)
246 return ether_addr_equal(da, sdata->vif.addr);
348 static bool ieee80211_prep_hw_scan(struct ieee80211_sub_if_data *sdata)
350 struct ieee80211_local *local = sdata->local;
397 ielen = ieee80211_build_preq_ies(sdata,
421 struct ieee80211_sub_if_data *sdata;
497 list_for_each_entry_rcu(sdata, &local->interfaces, list) {
498 if (ieee80211_sdata_running(sdata))
499 ieee80211_queue_work(&sdata->local->hw, &sdata->work);
524 struct ieee80211_sub_if_data *sdata)
543 drv_sw_scan_start(local, sdata, local->scan_addr);
565 static bool __ieee80211_can_leave_ch(struct ieee80211_sub_if_data *sdata)
567 struct ieee80211_local *local = sdata->local;
589 struct ieee80211_sub_if_data *sdata)
591 if (!__ieee80211_can_leave_ch(sdata))
597 if (sdata->vif.type == NL80211_IFTYPE_STATION &&
598 sdata->u.mgd.flags & IEEE80211_STA_CONNECTION_POLL)
621 static void ieee80211_send_scan_probe_req(struct ieee80211_sub_if_data *sdata,
630 skb = ieee80211_build_probe_req(sdata, src, dst, ratemask, channel,
645 ieee80211_tx_skb_tid_band(sdata, skb, 7, channel->band);
653 struct ieee80211_sub_if_data *sdata;
669 sdata = rcu_dereference_protected(local->scan_sdata,
674 sdata, local->scan_addr, scan_req->bssid,
688 static int __ieee80211_start_scan(struct ieee80211_sub_if_data *sdata,
691 struct ieee80211_local *local = sdata->local;
700 if (!__ieee80211_can_leave_ch(sdata))
703 if (!ieee80211_can_scan(local, sdata)) {
706 rcu_assign_pointer(local->scan_sdata, sdata);
765 rcu_assign_pointer(local->scan_sdata, sdata);
772 memcpy(local->scan_addr, sdata->vif.addr, ETH_ALEN);
790 drv_sw_scan_start(local, sdata, local->scan_addr);
820 WARN_ON(!ieee80211_prep_hw_scan(sdata));
821 rc = drv_hw_scan(local, sdata, local->hw_scan_req);
823 rc = ieee80211_start_sw_scan(local, sdata);
842 if (ieee80211_vif_type_p2p(&sdata->vif) ==
870 struct ieee80211_sub_if_data *sdata;
881 list_for_each_entry(sdata, &local->interfaces, list) {
882 if (!ieee80211_sdata_running(sdata))
885 if (sdata->vif.type == NL80211_IFTYPE_STATION) {
886 if (sdata->u.mgd.associated) {
889 if (!qdisc_all_tx_empty(sdata->dev)) {
1061 struct ieee80211_sub_if_data *sdata;
1073 sdata = rcu_dereference_protected(local->scan_sdata,
1089 if (!sdata || !scan_req)
1098 rc = __ieee80211_start_scan(sdata, scan_req);
1115 if (!ieee80211_sdata_running(sdata)) {
1160 int ieee80211_request_scan(struct ieee80211_sub_if_data *sdata,
1165 mutex_lock(&sdata->local->mtx);
1166 res = __ieee80211_start_scan(sdata, req);
1167 mutex_unlock(&sdata->local->mtx);
1172 int ieee80211_request_ibss_scan(struct ieee80211_sub_if_data *sdata,
1178 struct ieee80211_local *local = sdata->local;
1237 ret = __ieee80211_start_scan(sdata, sdata->local->int_scan_req);
1307 int __ieee80211_request_sched_scan_start(struct ieee80211_sub_if_data *sdata,
1310 struct ieee80211_local *local = sdata->local;
1345 ieee80211_build_preq_ies(sdata, ie, num_bands * iebufsz,
1350 ret = drv_sched_scan_start(local, sdata, req, &sched_scan_ies);
1352 rcu_assign_pointer(local->sched_scan_sdata, sdata);
1368 int ieee80211_request_sched_scan_start(struct ieee80211_sub_if_data *sdata,
1371 struct ieee80211_local *local = sdata->local;
1381 ret = __ieee80211_request_sched_scan_start(sdata, req);