mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 08:21:14 +00:00
cac1a4be66
several people reported this bug to be causing drop out issues Signed-off-by: John Crispin <john@phrozen.org>
134 lines
4.1 KiB
Diff
134 lines
4.1 KiB
Diff
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);
|
|
-
|
|
- brcmf_scan_config_mpc(ifp, 1);
|
|
- goto scan_out;
|
|
- }
|
|
- }
|
|
+
|
|
+ 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;
|
|
|
|
/* 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);
|