Commit e9a6ca82 authored by Hante Meuleman's avatar Hante Meuleman Committed by Kalle Valo

brcmfmac: Cleanup ssid storage.

SSIDs used for connect and p2p got stored, but never used.
Reviewed-by: default avatarArend Van Spriel <arend@broadcom.com>
Reviewed-by: default avatarFranky (Zhenhui) Lin <frankyl@broadcom.com>
Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: default avatarHante Meuleman <meuleman@broadcom.com>
Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 1d14c6f4
...@@ -960,7 +960,7 @@ brcmf_run_escan(struct brcmf_cfg80211_info *cfg, struct brcmf_if *ifp, ...@@ -960,7 +960,7 @@ brcmf_run_escan(struct brcmf_cfg80211_info *cfg, struct brcmf_if *ifp,
params_size += sizeof(u32) * ((request->n_channels + 1) / 2); params_size += sizeof(u32) * ((request->n_channels + 1) / 2);
/* Allocate space for populating ssids in struct */ /* 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); params = kzalloc(params_size, GFP_KERNEL);
...@@ -1292,6 +1292,7 @@ brcmf_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *ndev, ...@@ -1292,6 +1292,7 @@ brcmf_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *ndev,
s32 wsec = 0; s32 wsec = 0;
s32 bcnprd; s32 bcnprd;
u16 chanspec; u16 chanspec;
u32 ssid_len;
brcmf_dbg(TRACE, "Enter\n"); brcmf_dbg(TRACE, "Enter\n");
if (!check_vif_up(ifp->vif)) if (!check_vif_up(ifp->vif))
...@@ -1369,17 +1370,15 @@ brcmf_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *ndev, ...@@ -1369,17 +1370,15 @@ brcmf_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *ndev,
memset(&join_params, 0, sizeof(struct brcmf_join_params)); memset(&join_params, 0, sizeof(struct brcmf_join_params));
/* SSID */ /* SSID */
profile->ssid.SSID_len = min_t(u32, params->ssid_len, 32); ssid_len = min_t(u32, params->ssid_len, IEEE80211_MAX_SSID_LEN);
memcpy(profile->ssid.SSID, params->ssid, profile->ssid.SSID_len); memcpy(join_params.ssid_le.SSID, params->ssid, ssid_len);
memcpy(join_params.ssid_le.SSID, params->ssid, profile->ssid.SSID_len); join_params.ssid_le.SSID_len = cpu_to_le32(ssid_len);
join_params.ssid_le.SSID_len = cpu_to_le32(profile->ssid.SSID_len);
join_params_size = sizeof(join_params.ssid_le); join_params_size = sizeof(join_params.ssid_le);
/* BSSID */ /* BSSID */
if (params->bssid) { if (params->bssid) {
memcpy(join_params.params_le.bssid, params->bssid, ETH_ALEN); memcpy(join_params.params_le.bssid, params->bssid, ETH_ALEN);
join_params_size = sizeof(join_params.ssid_le) + join_params_size += BRCMF_ASSOC_PARAMS_FIXED_SIZE;
BRCMF_ASSOC_PARAMS_FIXED_SIZE;
memcpy(profile->bssid, params->bssid, ETH_ALEN); memcpy(profile->bssid, params->bssid, ETH_ALEN);
} else { } else {
eth_broadcast_addr(join_params.params_le.bssid); eth_broadcast_addr(join_params.params_le.bssid);
...@@ -1729,7 +1728,6 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev, ...@@ -1729,7 +1728,6 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev,
{ {
struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy); struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
struct brcmf_if *ifp = netdev_priv(ndev); struct brcmf_if *ifp = netdev_priv(ndev);
struct brcmf_cfg80211_profile *profile = &ifp->vif->profile;
struct ieee80211_channel *chan = sme->channel; struct ieee80211_channel *chan = sme->channel;
struct brcmf_join_params join_params; struct brcmf_join_params join_params;
size_t join_params_size; size_t join_params_size;
...@@ -1740,6 +1738,7 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev, ...@@ -1740,6 +1738,7 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev,
struct brcmf_ext_join_params_le *ext_join_params; struct brcmf_ext_join_params_le *ext_join_params;
u16 chanspec; u16 chanspec;
s32 err = 0; s32 err = 0;
u32 ssid_len;
brcmf_dbg(TRACE, "Enter\n"); brcmf_dbg(TRACE, "Enter\n");
if (!check_vif_up(ifp->vif)) if (!check_vif_up(ifp->vif))
...@@ -1825,15 +1824,6 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev, ...@@ -1825,15 +1824,6 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev,
goto done; 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 /* Join with specific BSSID and cached SSID
* If SSID is zero join based on BSSID only * If SSID is zero join based on BSSID only
*/ */
...@@ -1846,9 +1836,12 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev, ...@@ -1846,9 +1836,12 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev,
err = -ENOMEM; err = -ENOMEM;
goto done; goto done;
} }
ext_join_params->ssid_le.SSID_len = cpu_to_le32(profile->ssid.SSID_len); ssid_len = min_t(u32, sme->ssid_len, IEEE80211_MAX_SSID_LEN);
memcpy(&ext_join_params->ssid_le.SSID, sme->ssid, ext_join_params->ssid_le.SSID_len = cpu_to_le32(ssid_len);
profile->ssid.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 */ /* Set up join scan parameters */
ext_join_params->scan_le.scan_type = -1; ext_join_params->scan_le.scan_type = -1;
...@@ -1896,8 +1889,8 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev, ...@@ -1896,8 +1889,8 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev,
memset(&join_params, 0, sizeof(join_params)); memset(&join_params, 0, sizeof(join_params));
join_params_size = sizeof(join_params.ssid_le); join_params_size = sizeof(join_params.ssid_le);
memcpy(&join_params.ssid_le.SSID, sme->ssid, profile->ssid.SSID_len); memcpy(&join_params.ssid_le.SSID, sme->ssid, ssid_len);
join_params.ssid_le.SSID_len = cpu_to_le32(profile->ssid.SSID_len); join_params.ssid_le.SSID_len = cpu_to_le32(ssid_len);
if (sme->bssid) if (sme->bssid)
memcpy(join_params.params_le.bssid, sme->bssid, ETH_ALEN); memcpy(join_params.params_le.bssid, sme->bssid, ETH_ALEN);
...@@ -2776,9 +2769,7 @@ static s32 wl_inform_ibss(struct brcmf_cfg80211_info *cfg, ...@@ -2776,9 +2769,7 @@ static s32 wl_inform_ibss(struct brcmf_cfg80211_info *cfg,
static s32 brcmf_update_bss_info(struct brcmf_cfg80211_info *cfg, static s32 brcmf_update_bss_info(struct brcmf_cfg80211_info *cfg,
struct brcmf_if *ifp) struct brcmf_if *ifp)
{ {
struct brcmf_cfg80211_profile *profile = ndev_to_prof(ifp->ndev);
struct brcmf_bss_info_le *bi; struct brcmf_bss_info_le *bi;
struct brcmf_ssid *ssid;
const struct brcmf_tlv *tim; const struct brcmf_tlv *tim;
u16 beacon_interval; u16 beacon_interval;
u8 dtim_period; u8 dtim_period;
...@@ -2790,8 +2781,6 @@ static s32 brcmf_update_bss_info(struct brcmf_cfg80211_info *cfg, ...@@ -2790,8 +2781,6 @@ static s32 brcmf_update_bss_info(struct brcmf_cfg80211_info *cfg,
if (brcmf_is_ibssmode(ifp->vif)) if (brcmf_is_ibssmode(ifp->vif))
return err; return err;
ssid = &profile->ssid;
*(__le32 *)cfg->extra_buf = cpu_to_le32(WL_EXTRA_BUF_MAX); *(__le32 *)cfg->extra_buf = cpu_to_le32(WL_EXTRA_BUF_MAX);
err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_BSS_INFO, err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_BSS_INFO,
cfg->extra_buf, WL_EXTRA_BUF_MAX); cfg->extra_buf, WL_EXTRA_BUF_MAX);
......
...@@ -124,13 +124,11 @@ struct brcmf_cfg80211_security { ...@@ -124,13 +124,11 @@ struct brcmf_cfg80211_security {
/** /**
* struct brcmf_cfg80211_profile - profile information. * struct brcmf_cfg80211_profile - profile information.
* *
* @ssid: ssid of associated/associating ap.
* @bssid: bssid of joined/joining ibss. * @bssid: bssid of joined/joining ibss.
* @sec: security information. * @sec: security information.
* @key: key information * @key: key information
*/ */
struct brcmf_cfg80211_profile { struct brcmf_cfg80211_profile {
struct brcmf_ssid ssid;
u8 bssid[ETH_ALEN]; u8 bssid[ETH_ALEN];
struct brcmf_cfg80211_security sec; struct brcmf_cfg80211_security sec;
struct brcmf_wsec_key key[BRCMF_MAX_DEFAULT_KEYS]; struct brcmf_wsec_key key[BRCMF_MAX_DEFAULT_KEYS];
......
...@@ -282,14 +282,9 @@ struct brcm_rateset_le { ...@@ -282,14 +282,9 @@ struct brcm_rateset_le {
u8 rates[BRCMF_MAXRATES_IN_SET]; u8 rates[BRCMF_MAXRATES_IN_SET];
}; };
struct brcmf_ssid {
u32 SSID_len;
unsigned char SSID[32];
};
struct brcmf_ssid_le { struct brcmf_ssid_le {
__le32 SSID_len; __le32 SSID_len;
unsigned char SSID[32]; unsigned char SSID[IEEE80211_MAX_SSID_LEN];
}; };
struct brcmf_scan_params_le { struct brcmf_scan_params_le {
......
...@@ -642,7 +642,6 @@ static s32 brcmf_p2p_escan(struct brcmf_p2p_info *p2p, u32 num_chans, ...@@ -642,7 +642,6 @@ static s32 brcmf_p2p_escan(struct brcmf_p2p_info *p2p, u32 num_chans,
struct brcmf_cfg80211_vif *vif; struct brcmf_cfg80211_vif *vif;
struct brcmf_p2p_scan_le *p2p_params; struct brcmf_p2p_scan_le *p2p_params;
struct brcmf_scan_params_le *sparams; struct brcmf_scan_params_le *sparams;
struct brcmf_ssid ssid;
memsize += num_chans * sizeof(__le16); memsize += num_chans * sizeof(__le16);
memblk = kzalloc(memsize, GFP_KERNEL); memblk = kzalloc(memsize, GFP_KERNEL);
...@@ -655,16 +654,16 @@ static s32 brcmf_p2p_escan(struct brcmf_p2p_info *p2p, u32 num_chans, ...@@ -655,16 +654,16 @@ static s32 brcmf_p2p_escan(struct brcmf_p2p_info *p2p, u32 num_chans,
ret = -EINVAL; ret = -EINVAL;
goto exit; goto exit;
} }
p2p_params = (struct brcmf_p2p_scan_le *)memblk;
sparams = &p2p_params->eparams.params_le;
switch (search_state) { switch (search_state) {
case WL_P2P_DISC_ST_SEARCH: case WL_P2P_DISC_ST_SEARCH:
/* /*
* If we in SEARCH STATE, we don't need to set SSID explictly * 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; break;
case WL_P2P_DISC_ST_SCAN: case WL_P2P_DISC_ST_SCAN:
/* /*
...@@ -673,8 +672,10 @@ static s32 brcmf_p2p_escan(struct brcmf_p2p_info *p2p, u32 num_chans, ...@@ -673,8 +672,10 @@ static s32 brcmf_p2p_escan(struct brcmf_p2p_info *p2p, u32 num_chans,
* P2P WILDCARD because we just do broadcast scan unless * P2P WILDCARD because we just do broadcast scan unless
* setting SSID. * setting SSID.
*/ */
ssid.SSID_len = BRCMF_P2P_WILDCARD_SSID_LEN; sparams->ssid_le.SSID_len =
memcpy(ssid.SSID, BRCMF_P2P_WILDCARD_SSID, ssid.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; break;
default: default:
brcmf_err(" invalid search state %d\n", search_state); brcmf_err(" invalid search state %d\n", search_state);
...@@ -687,11 +688,9 @@ static s32 brcmf_p2p_escan(struct brcmf_p2p_info *p2p, u32 num_chans, ...@@ -687,11 +688,9 @@ static s32 brcmf_p2p_escan(struct brcmf_p2p_info *p2p, u32 num_chans,
/* /*
* set p2p scan parameters. * set p2p scan parameters.
*/ */
p2p_params = (struct brcmf_p2p_scan_le *)memblk;
p2p_params->type = 'E'; p2p_params->type = 'E';
/* determine the scan engine parameters */ /* determine the scan engine parameters */
sparams = &p2p_params->eparams.params_le;
sparams->bss_type = DOT11_BSSTYPE_ANY; sparams->bss_type = DOT11_BSSTYPE_ANY;
if (p2p->cfg->active_scan) if (p2p->cfg->active_scan)
sparams->scan_type = 0; sparams->scan_type = 0;
...@@ -699,9 +698,6 @@ static s32 brcmf_p2p_escan(struct brcmf_p2p_info *p2p, u32 num_chans, ...@@ -699,9 +698,6 @@ static s32 brcmf_p2p_escan(struct brcmf_p2p_info *p2p, u32 num_chans,
sparams->scan_type = 1; sparams->scan_type = 1;
eth_broadcast_addr(sparams->bssid); 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); sparams->home_time = cpu_to_le32(P2PAPI_SCAN_HOME_TIME_MS);
/* /*
......
...@@ -112,7 +112,6 @@ struct afx_hdl { ...@@ -112,7 +112,6 @@ struct afx_hdl {
* @int_addr: P2P interface address. * @int_addr: P2P interface address.
* @bss_idx: informate for P2P bss types. * @bss_idx: informate for P2P bss types.
* @listen_timer: timer for @WL_P2P_DISC_ST_LISTEN discover state. * @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. * @listen_channel: channel for @WL_P2P_DISC_ST_LISTEN discover state.
* @remain_on_channel: contains copy of struct used by cfg80211. * @remain_on_channel: contains copy of struct used by cfg80211.
* @remain_on_channel_cookie: cookie counter for remain on channel cmd * @remain_on_channel_cookie: cookie counter for remain on channel cmd
...@@ -133,7 +132,6 @@ struct brcmf_p2p_info { ...@@ -133,7 +132,6 @@ struct brcmf_p2p_info {
u8 int_addr[ETH_ALEN]; u8 int_addr[ETH_ALEN];
struct p2p_bss bss_idx[P2PAPI_BSSCFG_MAX]; struct p2p_bss bss_idx[P2PAPI_BSSCFG_MAX];
struct timer_list listen_timer; struct timer_list listen_timer;
struct brcmf_ssid ssid;
u8 listen_channel; u8 listen_channel;
struct ieee80211_channel remain_on_channel; struct ieee80211_channel remain_on_channel;
u32 remain_on_channel_cookie; u32 remain_on_channel_cookie;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment