Lines Matching defs:request

747 static  void cfg80211_scan_req_add_chan(struct cfg80211_scan_request *request,
752 u32 n_channels = request->n_channels;
754 &request->scan_6ghz_params[request->n_6ghz_params];
757 if (request->channels[i] == chan) {
764 request->channels[n_channels] = chan;
766 request->scan_6ghz_params[request->n_6ghz_params].channel_idx =
769 request->n_channels++;
773 struct cfg80211_scan_request *request)
778 for (i = 0; i < request->n_ssids; i++) {
779 /* wildcard ssid in the scan request */
780 if (!request->ssids[i].ssid_len) {
788 ap->ssid_len == request->ssids[i].ssid_len) {
789 if (!memcmp(request->ssids[i].ssid, ap->ssid,
793 s_ssid = ~crc32_le(~0, request->ssids[i].ssid,
794 request->ssids[i].ssid_len);
809 struct cfg80211_scan_request *request, *rdev_req = rdev->scan_req;
841 request = kzalloc(struct_size(request, channels, n_channels) +
842 sizeof(*request->scan_6ghz_params) * count +
843 sizeof(*request->ssids) * rdev_req->n_ssids,
845 if (!request) {
850 *request = *rdev_req;
851 request->n_channels = 0;
852 request->scan_6ghz_params =
853 (void *)&request->channels[n_channels];
860 if (count && request->n_ssids == 1 && request->ssids[0].ssid_len) {
863 cfg80211_find_ssid_match(ap, request)) {
871 * add to the scan request the channels that need to be scanned
880 cfg80211_scan_req_add_chan(request,
892 &request->scan_6ghz_params[request->n_6ghz_params];
907 if (request->n_ssids > 0 &&
908 !cfg80211_find_ssid_match(ap, request))
911 if (!is_broadcast_ether_addr(request->bssid) &&
912 !ether_addr_equal(request->bssid, ap->bssid))
915 if (!request->n_ssids && ap->multi_bss && !ap->transmitted_bssid)
918 cfg80211_scan_req_add_chan(request, chan, true);
934 request->n_6ghz_params++;
940 if (request->n_channels) {
942 rdev->int_scan_req = request;
945 * Add the ssids from the parent scan request to the new scan
946 * request, so the driver would be able to use them in its
949 request->ssids = (void *)&request->channels[request->n_channels];
950 request->n_ssids = rdev_req->n_ssids;
951 memcpy(request->ssids, rdev_req->ssids, sizeof(*request->ssids) *
952 request->n_ssids);
961 err = rdev_scan(rdev, request);
964 kfree(request);
972 kfree(request);
978 struct cfg80211_scan_request *request;
993 request = kzalloc(struct_size(request, channels, n_channels),
995 if (!request)
998 *request = *rdev_req;
999 request->n_channels = n_channels;
1003 request->channels[idx++] = rdev_req->channels[i];
1007 rdev->int_scan_req = request;
1008 return rdev_scan(rdev, request);
1014 struct cfg80211_scan_request *request, *rdev_req;
1034 request = rdev->int_scan_req ? rdev->int_scan_req : rdev_req;
1038 !rdev_req->scan_6ghz && !request->info.aborted &&
1050 if (!request->info.aborted &&
1051 request->flags & NL80211_SCAN_FLAG_FLUSH) {
1054 __cfg80211_bss_expire(rdev, request->scan_start);
1058 msg = nl80211_build_scan_msg(rdev, wdev, request->info.aborted);
1061 if (wdev->netdev && !request->info.aborted) {
1087 void cfg80211_scan_done(struct cfg80211_scan_request *request,
1090 struct cfg80211_scan_info old_info = request->info;
1092 trace_cfg80211_scan_done(request, info);
1093 WARN_ON(request != wiphy_to_rdev(request->wiphy)->scan_req &&
1094 request != wiphy_to_rdev(request->wiphy)->int_scan_req);
1096 request->info = *info;
1103 if (request->scan_6ghz && old_info.scan_start_tsf) {
1104 request->info.scan_start_tsf = old_info.scan_start_tsf;
1105 memcpy(request->info.tsf_bssid, old_info.tsf_bssid,
1106 sizeof(request->info.tsf_bssid));
1109 request->notified = true;
1110 wiphy_work_queue(request->wiphy,
1111 &wiphy_to_rdev(request->wiphy)->scan_done_wk);
1146 * Determines if a scheduled scan request can be handled. When a legacy
1148 * whether the request is for legacy or multi-support scan. When a multi-support
1149 * scheduled scan is running a request for legacy scan is not allowed. In this
1150 * case a request for multi-support scan can be handled if resources are
1160 /* request id zero means legacy in progress */
1167 /* no legacy allowed when multi request(s) are active */
1207 struct cfg80211_sched_scan_request *request;
1213 request = cfg80211_find_sched_scan_req(rdev, reqid);
1214 if (request) {
1215 request->report_results = true;
3185 /* translate "Scan on frequencies" request */
3199 /* If we have a wireless request structure and the
3200 * wireless request specifies frequencies, then search
3233 /* translate "Scan for SSID" request */