diff options
Diffstat (limited to 'package/kernel/mac80211/patches/376-0001-brcmfmac-Cleanup-ssid-storage.patch')
-rw-r--r-- | package/kernel/mac80211/patches/376-0001-brcmfmac-Cleanup-ssid-storage.patch | 251 |
1 files changed, 0 insertions, 251 deletions
diff --git a/package/kernel/mac80211/patches/376-0001-brcmfmac-Cleanup-ssid-storage.patch b/package/kernel/mac80211/patches/376-0001-brcmfmac-Cleanup-ssid-storage.patch deleted file mode 100644 index 83f1ebe907..0000000000 --- a/package/kernel/mac80211/patches/376-0001-brcmfmac-Cleanup-ssid-storage.patch +++ /dev/null @@ -1,251 +0,0 @@ -From: Hante Meuleman <meuleman@broadcom.com> -Date: Wed, 25 Nov 2015 11:32:37 +0100 -Subject: [PATCH] brcmfmac: Cleanup ssid storage. - -SSIDs used for connect and p2p got stored, but never used. - -Reviewed-by: Arend Van Spriel <arend@broadcom.com> -Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com> -Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> -Signed-off-by: Hante Meuleman <meuleman@broadcom.com> -Signed-off-by: Arend van Spriel <arend@broadcom.com> -Signed-off-by: Kalle Valo <kvalo@codeaurora.org> ---- - ---- a/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c -+++ b/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c -@@ -959,7 +959,7 @@ brcmf_run_escan(struct brcmf_cfg80211_in - params_size += sizeof(u32) * ((request->n_channels + 1) / 2); - - /* Allocate space for populating ssids in struct */ -- params_size += sizeof(struct brcmf_ssid) * request->n_ssids; -+ params_size += sizeof(struct brcmf_ssid_le) * request->n_ssids; - } - - params = kzalloc(params_size, GFP_KERNEL); -@@ -1291,6 +1291,7 @@ brcmf_cfg80211_join_ibss(struct wiphy *w - s32 wsec = 0; - s32 bcnprd; - u16 chanspec; -+ u32 ssid_len; - - brcmf_dbg(TRACE, "Enter\n"); - if (!check_vif_up(ifp->vif)) -@@ -1368,17 +1369,15 @@ brcmf_cfg80211_join_ibss(struct wiphy *w - memset(&join_params, 0, sizeof(struct brcmf_join_params)); - - /* SSID */ -- profile->ssid.SSID_len = min_t(u32, params->ssid_len, 32); -- memcpy(profile->ssid.SSID, params->ssid, profile->ssid.SSID_len); -- memcpy(join_params.ssid_le.SSID, params->ssid, profile->ssid.SSID_len); -- join_params.ssid_le.SSID_len = cpu_to_le32(profile->ssid.SSID_len); -+ ssid_len = min_t(u32, params->ssid_len, IEEE80211_MAX_SSID_LEN); -+ memcpy(join_params.ssid_le.SSID, params->ssid, ssid_len); -+ join_params.ssid_le.SSID_len = cpu_to_le32(ssid_len); - join_params_size = sizeof(join_params.ssid_le); - - /* BSSID */ - if (params->bssid) { - memcpy(join_params.params_le.bssid, params->bssid, ETH_ALEN); -- join_params_size = sizeof(join_params.ssid_le) + -- BRCMF_ASSOC_PARAMS_FIXED_SIZE; -+ join_params_size += BRCMF_ASSOC_PARAMS_FIXED_SIZE; - memcpy(profile->bssid, params->bssid, ETH_ALEN); - } else { - eth_broadcast_addr(join_params.params_le.bssid); -@@ -1728,7 +1727,6 @@ brcmf_cfg80211_connect(struct wiphy *wip - { - struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy); - struct brcmf_if *ifp = netdev_priv(ndev); -- struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; - struct ieee80211_channel *chan = sme->channel; - struct brcmf_join_params join_params; - size_t join_params_size; -@@ -1739,6 +1737,7 @@ brcmf_cfg80211_connect(struct wiphy *wip - struct brcmf_ext_join_params_le *ext_join_params; - u16 chanspec; - s32 err = 0; -+ u32 ssid_len; - - brcmf_dbg(TRACE, "Enter\n"); - if (!check_vif_up(ifp->vif)) -@@ -1824,15 +1823,6 @@ brcmf_cfg80211_connect(struct wiphy *wip - goto done; - } - -- profile->ssid.SSID_len = min_t(u32, (u32)sizeof(profile->ssid.SSID), -- (u32)sme->ssid_len); -- memcpy(&profile->ssid.SSID, sme->ssid, profile->ssid.SSID_len); -- if (profile->ssid.SSID_len < IEEE80211_MAX_SSID_LEN) { -- profile->ssid.SSID[profile->ssid.SSID_len] = 0; -- brcmf_dbg(CONN, "SSID \"%s\", len (%d)\n", profile->ssid.SSID, -- profile->ssid.SSID_len); -- } -- - /* Join with specific BSSID and cached SSID - * If SSID is zero join based on BSSID only - */ -@@ -1845,9 +1835,12 @@ brcmf_cfg80211_connect(struct wiphy *wip - err = -ENOMEM; - goto done; - } -- ext_join_params->ssid_le.SSID_len = cpu_to_le32(profile->ssid.SSID_len); -- memcpy(&ext_join_params->ssid_le.SSID, sme->ssid, -- profile->ssid.SSID_len); -+ ssid_len = min_t(u32, sme->ssid_len, IEEE80211_MAX_SSID_LEN); -+ ext_join_params->ssid_le.SSID_len = cpu_to_le32(ssid_len); -+ memcpy(&ext_join_params->ssid_le.SSID, sme->ssid, ssid_len); -+ if (ssid_len < IEEE80211_MAX_SSID_LEN) -+ brcmf_dbg(CONN, "SSID \"%s\", len (%d)\n", -+ ext_join_params->ssid_le.SSID, ssid_len); - - /* Set up join scan parameters */ - ext_join_params->scan_le.scan_type = -1; -@@ -1895,8 +1888,8 @@ brcmf_cfg80211_connect(struct wiphy *wip - memset(&join_params, 0, sizeof(join_params)); - join_params_size = sizeof(join_params.ssid_le); - -- memcpy(&join_params.ssid_le.SSID, sme->ssid, profile->ssid.SSID_len); -- join_params.ssid_le.SSID_len = cpu_to_le32(profile->ssid.SSID_len); -+ memcpy(&join_params.ssid_le.SSID, sme->ssid, ssid_len); -+ join_params.ssid_le.SSID_len = cpu_to_le32(ssid_len); - - if (sme->bssid) - memcpy(join_params.params_le.bssid, sme->bssid, ETH_ALEN); -@@ -2775,9 +2768,7 @@ CleanUp: - static s32 brcmf_update_bss_info(struct brcmf_cfg80211_info *cfg, - struct brcmf_if *ifp) - { -- struct brcmf_cfg80211_profile *profile = ndev_to_prof(ifp->ndev); - struct brcmf_bss_info_le *bi; -- struct brcmf_ssid *ssid; - const struct brcmf_tlv *tim; - u16 beacon_interval; - u8 dtim_period; -@@ -2789,8 +2780,6 @@ static s32 brcmf_update_bss_info(struct - if (brcmf_is_ibssmode(ifp->vif)) - return err; - -- ssid = &profile->ssid; -- - *(__le32 *)cfg->extra_buf = cpu_to_le32(WL_EXTRA_BUF_MAX); - err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_BSS_INFO, - cfg->extra_buf, WL_EXTRA_BUF_MAX); ---- a/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.h -+++ b/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.h -@@ -124,13 +124,11 @@ struct brcmf_cfg80211_security { - /** - * struct brcmf_cfg80211_profile - profile information. - * -- * @ssid: ssid of associated/associating ap. - * @bssid: bssid of joined/joining ibss. - * @sec: security information. - * @key: key information - */ - struct brcmf_cfg80211_profile { -- struct brcmf_ssid ssid; - u8 bssid[ETH_ALEN]; - struct brcmf_cfg80211_security sec; - struct brcmf_wsec_key key[BRCMF_MAX_DEFAULT_KEYS]; ---- a/drivers/net/wireless/brcm80211/brcmfmac/fwil_types.h -+++ b/drivers/net/wireless/brcm80211/brcmfmac/fwil_types.h -@@ -282,14 +282,9 @@ struct brcm_rateset_le { - u8 rates[BRCMF_MAXRATES_IN_SET]; - }; - --struct brcmf_ssid { -- u32 SSID_len; -- unsigned char SSID[32]; --}; -- - struct brcmf_ssid_le { - __le32 SSID_len; -- unsigned char SSID[32]; -+ unsigned char SSID[IEEE80211_MAX_SSID_LEN]; - }; - - struct brcmf_scan_params_le { ---- a/drivers/net/wireless/brcm80211/brcmfmac/p2p.c -+++ b/drivers/net/wireless/brcm80211/brcmfmac/p2p.c -@@ -642,7 +642,6 @@ static s32 brcmf_p2p_escan(struct brcmf_ - struct brcmf_cfg80211_vif *vif; - struct brcmf_p2p_scan_le *p2p_params; - struct brcmf_scan_params_le *sparams; -- struct brcmf_ssid ssid; - - memsize += num_chans * sizeof(__le16); - memblk = kzalloc(memsize, GFP_KERNEL); -@@ -655,16 +654,16 @@ static s32 brcmf_p2p_escan(struct brcmf_ - ret = -EINVAL; - goto exit; - } -+ p2p_params = (struct brcmf_p2p_scan_le *)memblk; -+ sparams = &p2p_params->eparams.params_le; - - switch (search_state) { - case WL_P2P_DISC_ST_SEARCH: - /* - * If we in SEARCH STATE, we don't need to set SSID explictly -- * because dongle use P2P WILDCARD internally by default -+ * because dongle use P2P WILDCARD internally by default, use -+ * null ssid, which it is already due to kzalloc. - */ -- /* use null ssid */ -- ssid.SSID_len = 0; -- memset(ssid.SSID, 0, sizeof(ssid.SSID)); - break; - case WL_P2P_DISC_ST_SCAN: - /* -@@ -673,8 +672,10 @@ static s32 brcmf_p2p_escan(struct brcmf_ - * P2P WILDCARD because we just do broadcast scan unless - * setting SSID. - */ -- ssid.SSID_len = BRCMF_P2P_WILDCARD_SSID_LEN; -- memcpy(ssid.SSID, BRCMF_P2P_WILDCARD_SSID, ssid.SSID_len); -+ sparams->ssid_le.SSID_len = -+ cpu_to_le32(BRCMF_P2P_WILDCARD_SSID_LEN); -+ memcpy(sparams->ssid_le.SSID, BRCMF_P2P_WILDCARD_SSID, -+ BRCMF_P2P_WILDCARD_SSID_LEN); - break; - default: - brcmf_err(" invalid search state %d\n", search_state); -@@ -687,11 +688,9 @@ static s32 brcmf_p2p_escan(struct brcmf_ - /* - * set p2p scan parameters. - */ -- p2p_params = (struct brcmf_p2p_scan_le *)memblk; - p2p_params->type = 'E'; - - /* determine the scan engine parameters */ -- sparams = &p2p_params->eparams.params_le; - sparams->bss_type = DOT11_BSSTYPE_ANY; - if (p2p->cfg->active_scan) - sparams->scan_type = 0; -@@ -699,9 +698,6 @@ static s32 brcmf_p2p_escan(struct brcmf_ - sparams->scan_type = 1; - - eth_broadcast_addr(sparams->bssid); -- if (ssid.SSID_len) -- memcpy(sparams->ssid_le.SSID, ssid.SSID, ssid.SSID_len); -- sparams->ssid_le.SSID_len = cpu_to_le32(ssid.SSID_len); - sparams->home_time = cpu_to_le32(P2PAPI_SCAN_HOME_TIME_MS); - - /* ---- a/drivers/net/wireless/brcm80211/brcmfmac/p2p.h -+++ b/drivers/net/wireless/brcm80211/brcmfmac/p2p.h -@@ -112,7 +112,6 @@ struct afx_hdl { - * @int_addr: P2P interface address. - * @bss_idx: informate for P2P bss types. - * @listen_timer: timer for @WL_P2P_DISC_ST_LISTEN discover state. -- * @ssid: ssid for P2P GO. - * @listen_channel: channel for @WL_P2P_DISC_ST_LISTEN discover state. - * @remain_on_channel: contains copy of struct used by cfg80211. - * @remain_on_channel_cookie: cookie counter for remain on channel cmd -@@ -133,7 +132,6 @@ struct brcmf_p2p_info { - u8 int_addr[ETH_ALEN]; - struct p2p_bss bss_idx[P2PAPI_BSSCFG_MAX]; - struct timer_list listen_timer; -- struct brcmf_ssid ssid; - u8 listen_channel; - struct ieee80211_channel remain_on_channel; - u32 remain_on_channel_cookie; |