diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/wireless/nl80211.c | 9 | ||||
-rw-r--r-- | net/wireless/sme.c | 3 |
2 files changed, 11 insertions, 1 deletions
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index d543cf152100..df82a5c9faee 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c | |||
@@ -5932,6 +5932,15 @@ static int nl80211_connect(struct sk_buff *skb, struct genl_info *info) | |||
5932 | connect.ie_len = nla_len(info->attrs[NL80211_ATTR_IE]); | 5932 | connect.ie_len = nla_len(info->attrs[NL80211_ATTR_IE]); |
5933 | } | 5933 | } |
5934 | 5934 | ||
5935 | if (info->attrs[NL80211_ATTR_USE_MFP]) { | ||
5936 | connect.mfp = nla_get_u32(info->attrs[NL80211_ATTR_USE_MFP]); | ||
5937 | if (connect.mfp != NL80211_MFP_REQUIRED && | ||
5938 | connect.mfp != NL80211_MFP_NO) | ||
5939 | return -EINVAL; | ||
5940 | } else { | ||
5941 | connect.mfp = NL80211_MFP_NO; | ||
5942 | } | ||
5943 | |||
5935 | if (info->attrs[NL80211_ATTR_WIPHY_FREQ]) { | 5944 | if (info->attrs[NL80211_ATTR_WIPHY_FREQ]) { |
5936 | connect.channel = | 5945 | connect.channel = |
5937 | ieee80211_get_channel(wiphy, | 5946 | ieee80211_get_channel(wiphy, |
diff --git a/net/wireless/sme.c b/net/wireless/sme.c index d2d26518cdd7..a825dfe12cf7 100644 --- a/net/wireless/sme.c +++ b/net/wireless/sme.c | |||
@@ -192,7 +192,8 @@ static int cfg80211_conn_do_work(struct wireless_dev *wdev) | |||
192 | prev_bssid, | 192 | prev_bssid, |
193 | params->ssid, params->ssid_len, | 193 | params->ssid, params->ssid_len, |
194 | params->ie, params->ie_len, | 194 | params->ie, params->ie_len, |
195 | false, ¶ms->crypto, | 195 | params->mfp != NL80211_MFP_NO, |
196 | ¶ms->crypto, | ||
196 | params->flags, ¶ms->ht_capa, | 197 | params->flags, ¶ms->ht_capa, |
197 | ¶ms->ht_capa_mask); | 198 | ¶ms->ht_capa_mask); |
198 | if (err) | 199 | if (err) |