diff options
Diffstat (limited to 'net/wireless/sme.c')
-rw-r--r-- | net/wireless/sme.c | 28 |
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 | ¶ms->crypto, | 196 | req.ht_capa_mask = params->ht_capa_mask; |
197 | params->flags, ¶ms->ht_capa, | 197 | req.vht_capa = params->vht_capa; |
198 | ¶ms->ht_capa_mask, | 198 | req.vht_capa_mask = params->vht_capa_mask; |
199 | ¶ms->vht_capa, | 199 | |
200 | ¶ms->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, |