diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 8f3a27b7d4fd..df159a5f1816 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -1678,7 +1678,9 @@ static int nl80211_key_allowed(struct wireless_dev *wdev) return -ENOLINK; case NL80211_IFTYPE_STATION: case NL80211_IFTYPE_P2P_CLIENT: - if (wdev->connected) + if (wdev->connected || + (wiphy_ext_feature_isset(wdev->wiphy, + NL80211_EXT_FEATURE_ASSOC_FRAME_ENCRYPTION))) return 0; return -ENOLINK; case NL80211_IFTYPE_NAN: