@@ -9831,12 +9831,12 @@ nl80211_check_scan_flags(struct wiphy *wiphy, struct wireless_dev *wdev,
98319831 mac_addr = req->mac_addr;
98329832 mac_addr_mask = req->mac_addr_mask;
98339833 } else {
9834- struct cfg80211_scan_request *req = request;
9834+ struct cfg80211_scan_request_int *req = request;
98359835
98369836 randomness_flag = NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR;
9837- flags = &req->flags;
9838- mac_addr = req->mac_addr;
9839- mac_addr_mask = req->mac_addr_mask;
9837+ flags = &req->req. flags;
9838+ mac_addr = req->req. mac_addr;
9839+ mac_addr_mask = req->req. mac_addr_mask;
98409840 }
98419841
98429842 *flags = nla_get_u32(attrs[NL80211_ATTR_SCAN_FLAGS]);
@@ -9891,7 +9891,7 @@ static int nl80211_trigger_scan(struct sk_buff *skb, struct genl_info *info)
98919891{
98929892 struct cfg80211_registered_device *rdev = info->user_ptr[0];
98939893 struct wireless_dev *wdev = info->user_ptr[1];
9894- struct cfg80211_scan_request *request;
9894+ struct cfg80211_scan_request_int *request;
98959895 struct nlattr *scan_freqs = NULL;
98969896 bool scan_freqs_khz = false;
98979897 struct nlattr *attr;
@@ -9943,21 +9943,21 @@ static int nl80211_trigger_scan(struct sk_buff *skb, struct genl_info *info)
99439943 if (ie_len > wiphy->max_scan_ie_len)
99449944 return -EINVAL;
99459945
9946- size = struct_size(request, channels, n_channels);
9946+ size = struct_size(request, req. channels, n_channels);
99479947 ssids_offset = size;
9948- size = size_add(size, array_size(sizeof(*request->ssids), n_ssids));
9948+ size = size_add(size, array_size(sizeof(*request->req. ssids), n_ssids));
99499949 ie_offset = size;
99509950 size = size_add(size, ie_len);
99519951 request = kzalloc(size, GFP_KERNEL);
99529952 if (!request)
99539953 return -ENOMEM;
9954- request->n_channels = n_channels;
9954+ request->req. n_channels = n_channels;
99559955
99569956 if (n_ssids)
9957- request->ssids = (void *)request + ssids_offset;
9958- request->n_ssids = n_ssids;
9957+ request->req. ssids = (void *)request + ssids_offset;
9958+ request->req. n_ssids = n_ssids;
99599959 if (ie_len)
9960- request->ie = (void *)request + ie_offset;
9960+ request->req. ie = (void *)request + ie_offset;
99619961
99629962 i = 0;
99639963 if (scan_freqs) {
@@ -9980,7 +9980,7 @@ static int nl80211_trigger_scan(struct sk_buff *skb, struct genl_info *info)
99809980 !cfg80211_wdev_channel_allowed(wdev, chan))
99819981 continue;
99829982
9983- request->channels[i] = chan;
9983+ request->req. channels[i] = chan;
99849984 i++;
99859985 }
99869986 } else {
@@ -10001,7 +10001,7 @@ static int nl80211_trigger_scan(struct sk_buff *skb, struct genl_info *info)
1000110001 !cfg80211_wdev_channel_allowed(wdev, chan))
1000210002 continue;
1000310003
10004- request->channels[i] = chan;
10004+ request->req. channels[i] = chan;
1000510005 i++;
1000610006 }
1000710007 }
@@ -10012,10 +10012,10 @@ static int nl80211_trigger_scan(struct sk_buff *skb, struct genl_info *info)
1001210012 goto out_free;
1001310013 }
1001410014
10015- request->n_channels = i;
10015+ request->req. n_channels = i;
1001610016
10017- for (i = 0; i < request->n_channels; i++) {
10018- struct ieee80211_channel *chan = request->channels[i];
10017+ for (i = 0; i < request->req. n_channels; i++) {
10018+ struct ieee80211_channel *chan = request->req. channels[i];
1001910019
1002010020 /* if we can go off-channel to the target channel we're good */
1002110021 if (cfg80211_off_channel_oper_allowed(wdev, chan))
@@ -10034,22 +10034,23 @@ static int nl80211_trigger_scan(struct sk_buff *skb, struct genl_info *info)
1003410034 err = -EINVAL;
1003510035 goto out_free;
1003610036 }
10037- request->ssids[i].ssid_len = nla_len(attr);
10038- memcpy(request->ssids[i].ssid, nla_data(attr), nla_len(attr));
10037+ request->req.ssids[i].ssid_len = nla_len(attr);
10038+ memcpy(request->req.ssids[i].ssid,
10039+ nla_data(attr), nla_len(attr));
1003910040 i++;
1004010041 }
1004110042 }
1004210043
1004310044 if (info->attrs[NL80211_ATTR_IE]) {
10044- request->ie_len = nla_len(info->attrs[NL80211_ATTR_IE]);
10045- memcpy((void *)request->ie,
10045+ request->req. ie_len = nla_len(info->attrs[NL80211_ATTR_IE]);
10046+ memcpy((void *)request->req. ie,
1004610047 nla_data(info->attrs[NL80211_ATTR_IE]),
10047- request->ie_len);
10048+ request->req. ie_len);
1004810049 }
1004910050
1005010051 for (i = 0; i < NUM_NL80211_BANDS; i++)
1005110052 if (wiphy->bands[i])
10052- request->rates[i] =
10053+ request->req. rates[i] =
1005310054 (1 << wiphy->bands[i]->n_bitrates) - 1;
1005410055
1005510056 if (info->attrs[NL80211_ATTR_SCAN_SUPP_RATES]) {
@@ -10069,16 +10070,16 @@ static int nl80211_trigger_scan(struct sk_buff *skb, struct genl_info *info)
1006910070 err = ieee80211_get_ratemask(wiphy->bands[band],
1007010071 nla_data(attr),
1007110072 nla_len(attr),
10072- &request->rates[band]);
10073+ &request->req. rates[band]);
1007310074 if (err)
1007410075 goto out_free;
1007510076 }
1007610077 }
1007710078
1007810079 if (info->attrs[NL80211_ATTR_MEASUREMENT_DURATION]) {
10079- request->duration =
10080+ request->req. duration =
1008010081 nla_get_u16(info->attrs[NL80211_ATTR_MEASUREMENT_DURATION]);
10081- request->duration_mandatory =
10082+ request->req. duration_mandatory =
1008210083 nla_get_flag(info->attrs[NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY]);
1008310084 }
1008410085
@@ -10087,7 +10088,7 @@ static int nl80211_trigger_scan(struct sk_buff *skb, struct genl_info *info)
1008710088 if (err)
1008810089 goto out_free;
1008910090
10090- request->no_cck =
10091+ request->req. no_cck =
1009110092 nla_get_flag(info->attrs[NL80211_ATTR_TX_NO_CCK_RATE]);
1009210093
1009310094 /* Initial implementation used NL80211_ATTR_MAC to set the specific
@@ -10100,19 +10101,21 @@ static int nl80211_trigger_scan(struct sk_buff *skb, struct genl_info *info)
1010010101 * (NL80211_ATTR_SCAN_FLAGS is used to enable random MAC address use).
1010110102 */
1010210103 if (info->attrs[NL80211_ATTR_BSSID])
10103- memcpy(request->bssid,
10104+ memcpy(request->req. bssid,
1010410105 nla_data(info->attrs[NL80211_ATTR_BSSID]), ETH_ALEN);
10105- else if (!(request->flags & NL80211_SCAN_FLAG_RANDOM_ADDR) &&
10106+ else if (!(request->req. flags & NL80211_SCAN_FLAG_RANDOM_ADDR) &&
1010610107 info->attrs[NL80211_ATTR_MAC])
10107- memcpy(request->bssid, nla_data(info->attrs[NL80211_ATTR_MAC]),
10108+ memcpy(request->req.bssid,
10109+ nla_data(info->attrs[NL80211_ATTR_MAC]),
1010810110 ETH_ALEN);
1010910111 else
10110- eth_broadcast_addr(request->bssid);
10112+ eth_broadcast_addr(request->req. bssid);
1011110113
10112- request->tsf_report_link_id = nl80211_link_id_or_invalid(info->attrs);
10113- request->wdev = wdev;
10114- request->wiphy = &rdev->wiphy;
10115- request->scan_start = jiffies;
10114+ request->req.tsf_report_link_id =
10115+ nl80211_link_id_or_invalid(info->attrs);
10116+ request->req.wdev = wdev;
10117+ request->req.wiphy = &rdev->wiphy;
10118+ request->req.scan_start = jiffies;
1011610119
1011710120 rdev->scan_req = request;
1011810121 err = cfg80211_scan(rdev);
@@ -18414,7 +18417,7 @@ void nl80211_notify_iface(struct cfg80211_registered_device *rdev,
1841418417static int nl80211_add_scan_req(struct sk_buff *msg,
1841518418 struct cfg80211_registered_device *rdev)
1841618419{
18417- struct cfg80211_scan_request *req = rdev->scan_req;
18420+ struct cfg80211_scan_request_int *req = rdev->scan_req;
1841818421 struct nlattr *nest;
1841918422 int i;
1842018423 struct cfg80211_scan_info *info;
@@ -18425,19 +18428,20 @@ static int nl80211_add_scan_req(struct sk_buff *msg,
1842518428 nest = nla_nest_start_noflag(msg, NL80211_ATTR_SCAN_SSIDS);
1842618429 if (!nest)
1842718430 goto nla_put_failure;
18428- for (i = 0; i < req->n_ssids; i++) {
18429- if (nla_put(msg, i, req->ssids[i].ssid_len, req->ssids[i].ssid))
18431+ for (i = 0; i < req->req.n_ssids; i++) {
18432+ if (nla_put(msg, i, req->req.ssids[i].ssid_len,
18433+ req->req.ssids[i].ssid))
1843018434 goto nla_put_failure;
1843118435 }
1843218436 nla_nest_end(msg, nest);
1843318437
18434- if (req->flags & NL80211_SCAN_FLAG_FREQ_KHZ) {
18438+ if (req->req. flags & NL80211_SCAN_FLAG_FREQ_KHZ) {
1843518439 nest = nla_nest_start(msg, NL80211_ATTR_SCAN_FREQ_KHZ);
1843618440 if (!nest)
1843718441 goto nla_put_failure;
18438- for (i = 0; i < req->n_channels; i++) {
18442+ for (i = 0; i < req->req. n_channels; i++) {
1843918443 if (nla_put_u32(msg, i,
18440- ieee80211_channel_to_khz(req->channels[i])))
18444+ ieee80211_channel_to_khz(req->req. channels[i])))
1844118445 goto nla_put_failure;
1844218446 }
1844318447 nla_nest_end(msg, nest);
@@ -18446,19 +18450,20 @@ static int nl80211_add_scan_req(struct sk_buff *msg,
1844618450 NL80211_ATTR_SCAN_FREQUENCIES);
1844718451 if (!nest)
1844818452 goto nla_put_failure;
18449- for (i = 0; i < req->n_channels; i++) {
18450- if (nla_put_u32(msg, i, req->channels[i]->center_freq))
18453+ for (i = 0; i < req->req.n_channels; i++) {
18454+ if (nla_put_u32(msg, i,
18455+ req->req.channels[i]->center_freq))
1845118456 goto nla_put_failure;
1845218457 }
1845318458 nla_nest_end(msg, nest);
1845418459 }
1845518460
18456- if (req->ie &&
18457- nla_put(msg, NL80211_ATTR_IE, req->ie_len, req->ie))
18461+ if (req->req. ie &&
18462+ nla_put(msg, NL80211_ATTR_IE, req->req. ie_len, req->req. ie))
1845818463 goto nla_put_failure;
1845918464
18460- if (req->flags &&
18461- nla_put_u32(msg, NL80211_ATTR_SCAN_FLAGS, req->flags))
18465+ if (req->req. flags &&
18466+ nla_put_u32(msg, NL80211_ATTR_SCAN_FLAGS, req->req. flags))
1846218467 goto nla_put_failure;
1846318468
1846418469 info = rdev->int_scan_req ? &rdev->int_scan_req->info :
0 commit comments