From: Arik Nemtsov Date: Wed, 3 Dec 2014 16:08:17 +0000 (+0200) Subject: cfg80211: correctly check ad-hoc channels X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=185076d6db7b0320fd7669732923179f9a4d068b;p=openwrt%2Fstaging%2Fblogic.git cfg80211: correctly check ad-hoc channels Ad-hoc requires beaconing for regulatory purposes. Validate that the channel is valid for beaconing, and not only enabled. Signed-off-by: Arik Nemtsov Reviewed-by: Luis R. Rodriguez Signed-off-by: Johannes Berg --- diff --git a/net/wireless/reg.c b/net/wireless/reg.c index c9f5ad5d5d94..7b8309840d4e 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c @@ -1546,12 +1546,18 @@ static bool reg_wdev_chan_valid(struct wiphy *wiphy, struct wireless_dev *wdev) if (!wdev->beacon_interval) goto out; + ret = cfg80211_reg_can_beacon(wiphy, + &wdev->chandef, wdev->iftype); + break; + case NL80211_IFTYPE_ADHOC: + if (!wdev->ssid_len) + goto out; + ret = cfg80211_reg_can_beacon(wiphy, &wdev->chandef, wdev->iftype); break; case NL80211_IFTYPE_STATION: case NL80211_IFTYPE_P2P_CLIENT: - case NL80211_IFTYPE_ADHOC: if (!wdev->current_bss || !wdev->current_bss->pub.channel) goto out;