aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/303-v4.15-0003-brcmfmac-cleanup-brcmf_cfg80211_escan-function.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/kernel/mac80211/patches/303-v4.15-0003-brcmfmac-cleanup-brcmf_cfg80211_escan-function.patch')
-rw-r--r--package/kernel/mac80211/patches/303-v4.15-0003-brcmfmac-cleanup-brcmf_cfg80211_escan-function.patch131
1 files changed, 131 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/303-v4.15-0003-brcmfmac-cleanup-brcmf_cfg80211_escan-function.patch b/package/kernel/mac80211/patches/303-v4.15-0003-brcmfmac-cleanup-brcmf_cfg80211_escan-function.patch
new file mode 100644
index 0000000000..ffd2db7620
--- /dev/null
+++ b/package/kernel/mac80211/patches/303-v4.15-0003-brcmfmac-cleanup-brcmf_cfg80211_escan-function.patch
@@ -0,0 +1,131 @@
+From 8c6efda22f5f9f73fc948f517424466be01ae84d Mon Sep 17 00:00:00 2001
+From: Arend Van Spriel <arend.vanspriel@broadcom.com>
+Date: Wed, 8 Nov 2017 14:36:33 +0100
+Subject: [PATCH] brcmfmac: cleanup brcmf_cfg80211_escan() function
+
+The function brcmf_cfg80211_escan() was always called with a non-null
+request parameter and null pointer for this_ssid parameter. Clean up
+the function removing the dead code path.
+
+Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
+Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
+Reviewed-by: Franky Lin <franky.lin@broadcom.com>
+Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ .../broadcom/brcm80211/brcmfmac/cfg80211.c | 76 ++++------------------
+ 1 file changed, 11 insertions(+), 65 deletions(-)
+
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+@@ -1072,18 +1072,10 @@ brcmf_do_escan(struct brcmf_if *ifp, str
+
+ static s32
+ brcmf_cfg80211_escan(struct wiphy *wiphy, struct brcmf_cfg80211_vif *vif,
+- struct cfg80211_scan_request *request,
+- struct cfg80211_ssid *this_ssid)
++ struct cfg80211_scan_request *request)
+ {
+- struct brcmf_if *ifp = vif->ifp;
+ struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
+- struct cfg80211_ssid *ssids;
+- u32 passive_scan;
+- bool escan_req;
+- bool spec_scan;
+ s32 err;
+- struct brcmf_ssid_le ssid_le;
+- u32 SSID_len;
+
+ brcmf_dbg(SCAN, "START ESCAN\n");
+
+@@ -1101,8 +1093,8 @@ brcmf_cfg80211_escan(struct wiphy *wiphy
+ cfg->scan_status);
+ return -EAGAIN;
+ }
+- if (test_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state)) {
+- brcmf_err("Connecting: status (%lu)\n", ifp->vif->sme_state);
++ if (test_bit(BRCMF_VIF_STATUS_CONNECTING, &vif->sme_state)) {
++ brcmf_err("Connecting: status (%lu)\n", vif->sme_state);
+ return -EAGAIN;
+ }
+
+@@ -1110,63 +1102,17 @@ brcmf_cfg80211_escan(struct wiphy *wiphy
+ if (vif == cfg->p2p.bss_idx[P2PAPI_BSSCFG_DEVICE].vif)
+ vif = cfg->p2p.bss_idx[P2PAPI_BSSCFG_PRIMARY].vif;
+
+- escan_req = false;
+- if (request) {
+- /* scan bss */
+- ssids = request->ssids;
+- escan_req = true;
+- } else {
+- /* scan in ibss */
+- /* we don't do escan in ibss */
+- ssids = this_ssid;
+- }
+-
+ cfg->scan_request = request;
+ set_bit(BRCMF_SCAN_STATUS_BUSY, &cfg->scan_status);
+- if (escan_req) {
+- cfg->escan_info.run = brcmf_run_escan;
+- err = brcmf_p2p_scan_prep(wiphy, request, vif);
+- if (err)
+- goto scan_out;
+-
+- err = brcmf_do_escan(vif->ifp, request);
+- if (err)
+- goto scan_out;
+- } else {
+- brcmf_dbg(SCAN, "ssid \"%s\", ssid_len (%d)\n",
+- ssids->ssid, ssids->ssid_len);
+- memset(&ssid_le, 0, sizeof(ssid_le));
+- SSID_len = min_t(u8, sizeof(ssid_le.SSID), ssids->ssid_len);
+- ssid_le.SSID_len = cpu_to_le32(0);
+- spec_scan = false;
+- if (SSID_len) {
+- memcpy(ssid_le.SSID, ssids->ssid, SSID_len);
+- ssid_le.SSID_len = cpu_to_le32(SSID_len);
+- spec_scan = true;
+- } else
+- brcmf_dbg(SCAN, "Broadcast scan\n");
+
+- passive_scan = cfg->active_scan ? 0 : 1;
+- err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PASSIVE_SCAN,
+- passive_scan);
+- if (err) {
+- brcmf_err("WLC_SET_PASSIVE_SCAN error (%d)\n", err);
+- goto scan_out;
+- }
+- brcmf_scan_config_mpc(ifp, 0);
+- err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SCAN, &ssid_le,
+- sizeof(ssid_le));
+- if (err) {
+- if (err == -EBUSY)
+- brcmf_dbg(INFO, "BUSY: scan for \"%s\" canceled\n",
+- ssid_le.SSID);
+- else
+- brcmf_err("WLC_SCAN error (%d)\n", err);
++ cfg->escan_info.run = brcmf_run_escan;
++ err = brcmf_p2p_scan_prep(wiphy, request, vif);
++ if (err)
++ goto scan_out;
+
+- brcmf_scan_config_mpc(ifp, 1);
+- goto scan_out;
+- }
+- }
++ err = brcmf_do_escan(vif->ifp, request);
++ if (err)
++ goto scan_out;
+
+ /* Arm scan timeout timer */
+ mod_timer(&cfg->escan_timeout, jiffies +
+@@ -1191,7 +1137,7 @@ brcmf_cfg80211_scan(struct wiphy *wiphy,
+ if (!check_vif_up(vif))
+ return -EIO;
+
+- err = brcmf_cfg80211_escan(wiphy, vif, request, NULL);
++ err = brcmf_cfg80211_escan(wiphy, vif, request);
+
+ if (err)
+ brcmf_err("scan error (%d)\n", err);