diff options
Diffstat (limited to 'net/wireless')
-rw-r--r-- | net/wireless/nl80211.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index ab0c687d0c44..dd249ec9f228 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c | |||
@@ -6715,8 +6715,17 @@ nl80211_check_scan_flags(struct wiphy *wiphy, struct wireless_dev *wdev, | |||
6715 | 6715 | ||
6716 | *flags = nla_get_u32(attrs[NL80211_ATTR_SCAN_FLAGS]); | 6716 | *flags = nla_get_u32(attrs[NL80211_ATTR_SCAN_FLAGS]); |
6717 | 6717 | ||
6718 | if ((*flags & NL80211_SCAN_FLAG_LOW_PRIORITY) && | 6718 | if (((*flags & NL80211_SCAN_FLAG_LOW_PRIORITY) && |
6719 | !(wiphy->features & NL80211_FEATURE_LOW_PRIORITY_SCAN)) | 6719 | !(wiphy->features & NL80211_FEATURE_LOW_PRIORITY_SCAN)) || |
6720 | ((*flags & NL80211_SCAN_FLAG_LOW_SPAN) && | ||
6721 | !wiphy_ext_feature_isset(wiphy, | ||
6722 | NL80211_EXT_FEATURE_LOW_SPAN_SCAN)) || | ||
6723 | ((*flags & NL80211_SCAN_FLAG_LOW_POWER) && | ||
6724 | !wiphy_ext_feature_isset(wiphy, | ||
6725 | NL80211_EXT_FEATURE_LOW_POWER_SCAN)) || | ||
6726 | ((*flags & NL80211_SCAN_FLAG_HIGH_ACCURACY) && | ||
6727 | !wiphy_ext_feature_isset(wiphy, | ||
6728 | NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN))) | ||
6720 | return -EOPNOTSUPP; | 6729 | return -EOPNOTSUPP; |
6721 | 6730 | ||
6722 | if (*flags & NL80211_SCAN_FLAG_RANDOM_ADDR) { | 6731 | if (*flags & NL80211_SCAN_FLAG_RANDOM_ADDR) { |