X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=net%2Fwireless%2Fnl80211.c;h=b6f84f6a2a095ef0c94891f796ef6cf7cf9af65f;hb=62a202d749dafc46304f0b21746a0ad0be86cf1a;hp=be25015380118bbd60e0b760e956a0cd9b58d3ed;hpb=99aedde0869ce194539166ac5a4d2e1a20995348;p=karo-tx-linux.git diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index be2501538011..b6f84f6a2a09 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -4400,6 +4400,16 @@ static int nl80211_new_station(struct sk_buff *skb, struct genl_info *info) if (parse_station_flags(info, dev->ieee80211_ptr->iftype, ¶ms)) return -EINVAL; + /* HT/VHT requires QoS, but if we don't have that just ignore HT/VHT + * as userspace might just pass through the capabilities from the IEs + * directly, rather than enforcing this restriction and returning an + * error in this case. + */ + if (!(params.sta_flags_set & BIT(NL80211_STA_FLAG_WME))) { + params.ht_capa = NULL; + params.vht_capa = NULL; + } + /* When you run into this, adjust the code below for the new flag */ BUILD_BUG_ON(NL80211_STA_FLAG_MAX != 7);