Commit 56271da2 authored by Johannes Berg's avatar Johannes Berg

cfg80211: disallow beacon_int_min_gcd with IBSS

This can't really be supported right now, because the IBSS
interface may change its beacon interval at any time due to
joining another network; thus, there's already "support"
for different beacon intervals here, implicitly.

Until we figure out how we should handle this case (continue
to allow it to arbitrarily join? Join only if compatible?)
disallow advertising that different beacon intervals are
supported if IBSS is allowed.
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 275fcf62
...@@ -562,6 +562,21 @@ static int wiphy_verify_combinations(struct wiphy *wiphy) ...@@ -562,6 +562,21 @@ static int wiphy_verify_combinations(struct wiphy *wiphy)
c->limits[j].max > 1)) c->limits[j].max > 1))
return -EINVAL; return -EINVAL;
/*
* This isn't well-defined right now. If you have an
* IBSS interface, then its beacon interval may change
* by joining other networks, and nothing prevents it
* from doing that.
* So technically we probably shouldn't even allow AP
* and IBSS in the same interface, but it seems that
* some drivers support that, possibly only with fixed
* beacon intervals for IBSS.
*/
if (WARN_ON(types & BIT(NL80211_IFTYPE_ADHOC) &&
c->beacon_int_min_gcd)) {
return -EINVAL;
}
cnt += c->limits[j].max; cnt += c->limits[j].max;
/* /*
* Don't advertise an unsupported type * Don't advertise an unsupported type
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment