]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
mac80211: split ieee80211_send_probe_req()
authorJohannes Berg <johannes.berg@intel.com>
Mon, 28 May 2018 13:47:39 +0000 (15:47 +0200)
committerJohannes Berg <johannes@sipsolutions.net>
Fri, 15 Jun 2018 11:34:25 +0000 (13:34 +0200)
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>
net/mac80211/ieee80211_i.h
net/mac80211/mlme.c
net/mac80211/scan.c
net/mac80211/util.c

index ee2a25d6ecf2286bddfd64ed201aff2f3e516088..2851245c569ab445dc2a77d128a9cce30ad975ca 100644 (file)
@@ -2050,13 +2050,6 @@ struct sk_buff *ieee80211_build_probe_req(struct ieee80211_sub_if_data *sdata,
                                          const u8 *ssid, size_t ssid_len,
                                          const u8 *ie, size_t ie_len,
                                          u32 flags);
-void ieee80211_send_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, bool scan);
-
 u32 ieee80211_sta_get_rates(struct ieee80211_sub_if_data *sdata,
                            struct ieee802_11_elems *elems,
                            enum nl80211_band band, u32 *basic_rates);
index c3f2883cc0ec25dd5aba42fb05895a4cd1027379..a44e5b4aaedad5acabf87e48fdc241ce6c019084 100644 (file)
@@ -2219,6 +2219,20 @@ void ieee80211_sta_tx_notify(struct ieee80211_sub_if_data *sdata,
                ieee80211_sta_reset_conn_monitor(sdata);
 }
 
+static void ieee80211_mlme_send_probe_req(struct ieee80211_sub_if_data *sdata,
+                                         const u8 *src, const u8 *dst,
+                                         const u8 *ssid, size_t ssid_len,
+                                         struct ieee80211_channel *channel)
+{
+       struct sk_buff *skb;
+
+       skb = ieee80211_build_probe_req(sdata, src, dst, (u32)-1, channel,
+                                       ssid, ssid_len, NULL, 0,
+                                       IEEE80211_PROBE_FLAG_DIRECTED);
+       if (skb)
+               ieee80211_tx_skb(sdata, skb);
+}
+
 static void ieee80211_mgd_probe_ap_send(struct ieee80211_sub_if_data *sdata)
 {
        struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
@@ -2265,11 +2279,9 @@ static void ieee80211_mgd_probe_ap_send(struct ieee80211_sub_if_data *sdata)
                else
                        ssid_len = ssid[1];
 
-               ieee80211_send_probe_req(sdata, sdata->vif.addr, dst,
-                                        ssid + 2, ssid_len, NULL,
-                                        0, (u32) -1,
-                                        IEEE80211_PROBE_FLAG_DIRECTED, 0,
-                                        ifmgd->associated->channel, false);
+               ieee80211_mlme_send_probe_req(sdata, sdata->vif.addr, dst,
+                                             ssid + 2, ssid_len,
+                                             ifmgd->associated->channel);
                rcu_read_unlock();
        }
 
index 8e28d8de26aa5f4d8ee929fc0bade8d662f254ae..03f66f31c5b4952d4880ba8460fe4483a97f19ef 100644 (file)
@@ -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
index fb7264edecad16b5c84507b60fddfaaa3e67fbf6..0325133552adc28e148cfa9be1297a90286e18f0 100644 (file)
@@ -1607,27 +1607,6 @@ struct sk_buff *ieee80211_build_probe_req(struct ieee80211_sub_if_data *sdata,
        return skb;
 }
 
-void ieee80211_send_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, bool scan)
-{
-       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;
-               if (scan)
-                       ieee80211_tx_skb_tid_band(sdata, skb, 7, channel->band);
-               else
-                       ieee80211_tx_skb(sdata, skb);
-       }
-}
-
 u32 ieee80211_sta_get_rates(struct ieee80211_sub_if_data *sdata,
                            struct ieee802_11_elems *elems,
                            enum nl80211_band band, u32 *basic_rates)