Commit 675f5d82 authored by Hante Meuleman's avatar Hante Meuleman Committed by Kalle Valo

brcmfmac: Use local storage for ssid iovar

Reviewed-by: default avatarArend Van Spriel <arend@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 1678ba8e
...@@ -1031,11 +1031,11 @@ brcmf_cfg80211_escan(struct wiphy *wiphy, struct brcmf_cfg80211_vif *vif, ...@@ -1031,11 +1031,11 @@ brcmf_cfg80211_escan(struct wiphy *wiphy, struct brcmf_cfg80211_vif *vif,
struct brcmf_if *ifp = vif->ifp; struct brcmf_if *ifp = vif->ifp;
struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy); struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
struct cfg80211_ssid *ssids; struct cfg80211_ssid *ssids;
struct brcmf_cfg80211_scan_req *sr = &cfg->scan_req_int;
u32 passive_scan; u32 passive_scan;
bool escan_req; bool escan_req;
bool spec_scan; bool spec_scan;
s32 err; s32 err;
struct brcmf_ssid_le ssid_le;
u32 SSID_len; u32 SSID_len;
brcmf_dbg(SCAN, "START ESCAN\n"); brcmf_dbg(SCAN, "START ESCAN\n");
...@@ -1088,13 +1088,13 @@ brcmf_cfg80211_escan(struct wiphy *wiphy, struct brcmf_cfg80211_vif *vif, ...@@ -1088,13 +1088,13 @@ brcmf_cfg80211_escan(struct wiphy *wiphy, struct brcmf_cfg80211_vif *vif,
} else { } else {
brcmf_dbg(SCAN, "ssid \"%s\", ssid_len (%d)\n", brcmf_dbg(SCAN, "ssid \"%s\", ssid_len (%d)\n",
ssids->ssid, ssids->ssid_len); ssids->ssid, ssids->ssid_len);
memset(&sr->ssid_le, 0, sizeof(sr->ssid_le)); memset(&ssid_le, 0, sizeof(ssid_le));
SSID_len = min_t(u8, sizeof(sr->ssid_le.SSID), ssids->ssid_len); SSID_len = min_t(u8, sizeof(ssid_le.SSID), ssids->ssid_len);
sr->ssid_le.SSID_len = cpu_to_le32(0); ssid_le.SSID_len = cpu_to_le32(0);
spec_scan = false; spec_scan = false;
if (SSID_len) { if (SSID_len) {
memcpy(sr->ssid_le.SSID, ssids->ssid, SSID_len); memcpy(ssid_le.SSID, ssids->ssid, SSID_len);
sr->ssid_le.SSID_len = cpu_to_le32(SSID_len); ssid_le.SSID_len = cpu_to_le32(SSID_len);
spec_scan = true; spec_scan = true;
} else } else
brcmf_dbg(SCAN, "Broadcast scan\n"); brcmf_dbg(SCAN, "Broadcast scan\n");
...@@ -1107,12 +1107,12 @@ brcmf_cfg80211_escan(struct wiphy *wiphy, struct brcmf_cfg80211_vif *vif, ...@@ -1107,12 +1107,12 @@ brcmf_cfg80211_escan(struct wiphy *wiphy, struct brcmf_cfg80211_vif *vif,
goto scan_out; goto scan_out;
} }
brcmf_scan_config_mpc(ifp, 0); brcmf_scan_config_mpc(ifp, 0);
err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SCAN, err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SCAN, &ssid_le,
&sr->ssid_le, sizeof(sr->ssid_le)); sizeof(ssid_le));
if (err) { if (err) {
if (err == -EBUSY) if (err == -EBUSY)
brcmf_dbg(INFO, "BUSY: scan for \"%s\" canceled\n", brcmf_dbg(INFO, "BUSY: scan for \"%s\" canceled\n",
sr->ssid_le.SSID); ssid_le.SSID);
else else
brcmf_err("WLC_SCAN error (%d)\n", err); brcmf_err("WLC_SCAN error (%d)\n", err);
......
...@@ -99,11 +99,6 @@ struct brcmf_cfg80211_conf { ...@@ -99,11 +99,6 @@ struct brcmf_cfg80211_conf {
struct ieee80211_channel channel; struct ieee80211_channel channel;
}; };
/* basic structure of scan request */
struct brcmf_cfg80211_scan_req {
struct brcmf_ssid_le ssid_le;
};
/* basic structure of information element */ /* basic structure of information element */
struct brcmf_cfg80211_ie { struct brcmf_cfg80211_ie {
u16 offset; u16 offset;
...@@ -337,7 +332,6 @@ struct brcmf_cfg80211_vif_event { ...@@ -337,7 +332,6 @@ struct brcmf_cfg80211_vif_event {
* @scan_request: cfg80211 scan request object. * @scan_request: cfg80211 scan request object.
* @usr_sync: mainly for dongle up/down synchronization. * @usr_sync: mainly for dongle up/down synchronization.
* @bss_list: bss_list holding scanned ap information. * @bss_list: bss_list holding scanned ap information.
* @scan_req_int: internal scan request object.
* @bss_info: bss information for cfg80211 layer. * @bss_info: bss information for cfg80211 layer.
* @ie: information element object for internal purpose. * @ie: information element object for internal purpose.
* @conn_info: association info. * @conn_info: association info.
...@@ -372,7 +366,6 @@ struct brcmf_cfg80211_info { ...@@ -372,7 +366,6 @@ struct brcmf_cfg80211_info {
struct brcmf_btcoex_info *btcoex; struct brcmf_btcoex_info *btcoex;
struct cfg80211_scan_request *scan_request; struct cfg80211_scan_request *scan_request;
struct mutex usr_sync; struct mutex usr_sync;
struct brcmf_cfg80211_scan_req scan_req_int;
struct wl_cfg80211_bss_info *bss_info; struct wl_cfg80211_bss_info *bss_info;
struct brcmf_cfg80211_ie ie; struct brcmf_cfg80211_ie ie;
struct brcmf_cfg80211_connect_info conn_info; struct brcmf_cfg80211_connect_info conn_info;
......
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