|
@@ -7265,8 +7265,18 @@ static int nl80211_join_ibss(struct sk_buff *skb, struct genl_info *info)
|
|
|
break;
|
|
|
case NL80211_CHAN_WIDTH_20:
|
|
|
case NL80211_CHAN_WIDTH_40:
|
|
|
- if (rdev->wiphy.features & NL80211_FEATURE_HT_IBSS)
|
|
|
- break;
|
|
|
+ if (!(rdev->wiphy.features & NL80211_FEATURE_HT_IBSS))
|
|
|
+ return -EINVAL;
|
|
|
+ break;
|
|
|
+ case NL80211_CHAN_WIDTH_80:
|
|
|
+ case NL80211_CHAN_WIDTH_80P80:
|
|
|
+ case NL80211_CHAN_WIDTH_160:
|
|
|
+ if (!(rdev->wiphy.features & NL80211_FEATURE_HT_IBSS))
|
|
|
+ return -EINVAL;
|
|
|
+ if (!wiphy_ext_feature_isset(&rdev->wiphy,
|
|
|
+ NL80211_EXT_FEATURE_VHT_IBSS))
|
|
|
+ return -EINVAL;
|
|
|
+ break;
|
|
|
default:
|
|
|
return -EINVAL;
|
|
|
}
|