aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless/sme.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-02-21 14:09:09 -0500
committerJohannes Berg <johannes.berg@intel.com>2013-03-06 10:35:49 -0500
commitf62fab735e99af2190eba03f565adaca5c002882 (patch)
tree450eb619c553539cc7515b16499d77a698b17029 /net/wireless/sme.c
parentdd5ecfeac8d1a96d0aba6bbcaec431756f8d8854 (diff)
cfg80211: refactor association parameters
cfg80211_mlme_assoc() has grown far too many arguments, make the caller build almost all of the driver struct and pass that to the function instead. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless/sme.c')
-rw-r--r--net/wireless/sme.c28
1 files changed, 15 insertions, 13 deletions
diff --git a/net/wireless/sme.c b/net/wireless/sme.c
index 7da118c034f0..bad4c4b5e4eb 100644
--- a/net/wireless/sme.c
+++ b/net/wireless/sme.c
@@ -159,7 +159,7 @@ static int cfg80211_conn_do_work(struct wireless_dev *wdev)
159{ 159{
160 struct cfg80211_registered_device *rdev = wiphy_to_dev(wdev->wiphy); 160 struct cfg80211_registered_device *rdev = wiphy_to_dev(wdev->wiphy);
161 struct cfg80211_connect_params *params; 161 struct cfg80211_connect_params *params;
162 const u8 *prev_bssid = NULL; 162 struct cfg80211_assoc_request req = {};
163 int err; 163 int err;
164 164
165 ASSERT_WDEV_LOCK(wdev); 165 ASSERT_WDEV_LOCK(wdev);
@@ -186,18 +186,20 @@ static int cfg80211_conn_do_work(struct wireless_dev *wdev)
186 BUG_ON(!rdev->ops->assoc); 186 BUG_ON(!rdev->ops->assoc);
187 wdev->conn->state = CFG80211_CONN_ASSOCIATING; 187 wdev->conn->state = CFG80211_CONN_ASSOCIATING;
188 if (wdev->conn->prev_bssid_valid) 188 if (wdev->conn->prev_bssid_valid)
189 prev_bssid = wdev->conn->prev_bssid; 189 req.prev_bssid = wdev->conn->prev_bssid;
190 err = __cfg80211_mlme_assoc(rdev, wdev->netdev, 190 req.ie = params->ie;
191 params->channel, params->bssid, 191 req.ie_len = params->ie_len;
192 prev_bssid, 192 req.use_mfp = params->mfp != NL80211_MFP_NO;
193 params->ssid, params->ssid_len, 193 req.crypto = params->crypto;
194 params->ie, params->ie_len, 194 req.flags = params->flags;
195 params->mfp != NL80211_MFP_NO, 195 req.ht_capa = params->ht_capa;
196 &params->crypto, 196 req.ht_capa_mask = params->ht_capa_mask;
197 params->flags, &params->ht_capa, 197 req.vht_capa = params->vht_capa;
198 &params->ht_capa_mask, 198 req.vht_capa_mask = params->vht_capa_mask;
199 &params->vht_capa, 199
200 &params->vht_capa_mask); 200 err = __cfg80211_mlme_assoc(rdev, wdev->netdev, params->channel,
201 params->bssid, params->ssid,
202 params->ssid_len, &req);
201 if (err) 203 if (err)
202 __cfg80211_mlme_deauth(rdev, wdev->netdev, params->bssid, 204 __cfg80211_mlme_deauth(rdev, wdev->netdev, params->bssid,
203 NULL, 0, 205 NULL, 0,