summaryrefslogtreecommitdiffstats
path: root/net/mac80211/scan.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2018-05-28 15:47:39 +0200
committerJohannes Berg <johannes@sipsolutions.net>2018-06-15 13:34:25 +0200
commit45ad683484b61b5859ccb5a93a8254e1b4d20a29 (patch)
treeed6cef5cdb1528a74a1ec128efc4cb84dafccecd /net/mac80211/scan.c
parentmac80211: add probe request building flags (diff)
downloadlinux-45ad683484b61b5859ccb5a93a8254e1b4d20a29.tar.xz
linux-45ad683484b61b5859ccb5a93a8254e1b4d20a29.zip
mac80211: split ieee80211_send_probe_req()
This function is passed many more parameters in the scan case than in the MLME case, and differentiates the two cases inside. Split it up and make both versions static to simplify things. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Diffstat (limited to 'net/mac80211/scan.c')
-rw-r--r--net/mac80211/scan.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
index 8e28d8de26aa..03f66f31c5b4 100644
--- a/net/mac80211/scan.c
+++ b/net/mac80211/scan.c
@@ -528,6 +528,24 @@ void ieee80211_run_deferred_scan(struct ieee80211_local *local)
round_jiffies_relative(0));
}
+static void ieee80211_send_scan_probe_req(struct ieee80211_sub_if_data *sdata,
+ const u8 *src, const u8 *dst,
+ const u8 *ssid, size_t ssid_len,
+ const u8 *ie, size_t ie_len,
+ u32 ratemask, u32 flags, u32 tx_flags,
+ struct ieee80211_channel *channel)
+{
+ struct sk_buff *skb;
+
+ skb = ieee80211_build_probe_req(sdata, src, dst, ratemask, channel,
+ ssid, ssid_len,
+ ie, ie_len, flags);
+ if (skb) {
+ IEEE80211_SKB_CB(skb)->flags |= tx_flags;
+ ieee80211_tx_skb_tid_band(sdata, skb, 7, channel->band);
+ }
+}
+
static void ieee80211_scan_state_send_probe(struct ieee80211_local *local,
unsigned long *next_delay)
{
@@ -548,12 +566,12 @@ static void ieee80211_scan_state_send_probe(struct ieee80211_local *local,
lockdep_is_held(&local->mtx));
for (i = 0; i < scan_req->n_ssids; i++)
- ieee80211_send_probe_req(
+ ieee80211_send_scan_probe_req(
sdata, local->scan_addr, scan_req->bssid,
scan_req->ssids[i].ssid, scan_req->ssids[i].ssid_len,
scan_req->ie, scan_req->ie_len,
scan_req->rates[band], 0,
- tx_flags, local->hw.conf.chandef.chan, true);
+ tx_flags, local->hw.conf.chandef.chan);
/*
* After sending probe requests, wait for probe responses