diff options
author | Rafał Miłecki <rafal@milecki.pl> | 2018-03-01 14:55:08 +0100 |
---|---|---|
committer | Rafał Miłecki <rafal@milecki.pl> | 2018-03-01 15:17:02 +0100 |
commit | c29a2a4283d71ae0c7b7d8fcbc27dbb1f94b3521 (patch) | |
tree | 18993b8ddbd8c879735963dd41db3df86ef78927 /package/kernel/mac80211/patches/303-v4.15-0003-brcmfmac-cleanup-brcmf_cfg80211_escan-function.patch | |
parent | 81542331cb1827650f3abd69375d964d0ce2d050 (diff) | |
download | mtk-20170518-c29a2a4283d71ae0c7b7d8fcbc27dbb1f94b3521.zip mtk-20170518-c29a2a4283d71ae0c7b7d8fcbc27dbb1f94b3521.tar.gz mtk-20170518-c29a2a4283d71ae0c7b7d8fcbc27dbb1f94b3521.tar.bz2 |
mac80211: brcmfmac: firmware halt and scan cleanup
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
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.patch | 131 |
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 0000000..ffd2db7 --- /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); |