diff options
author | Johannes Berg <johannes.berg@intel.com> | 2012-05-10 20:14:43 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-05-16 13:08:15 -0400 |
commit | 3383b5a69de59eeef2501834c6e0960b7e2bff28 (patch) | |
tree | 08dd59ffc3e6b53ab59b2da27fcaecbe51092b23 | |
parent | bdbc59b35f2a66cdd9465f573f865cc2109ab33d (diff) | |
download | lwn-3383b5a69de59eeef2501834c6e0960b7e2bff28.tar.gz lwn-3383b5a69de59eeef2501834c6e0960b7e2bff28.zip |
nl80211: prevent additions to old station flags API
We don't really want/need to maintain the old
station flags API any more, so refuse changes
to new (not yet defined) flags from the old
flags API.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | include/linux/nl80211.h | 2 | ||||
-rw-r--r-- | net/wireless/nl80211.c | 10 |
2 files changed, 10 insertions, 2 deletions
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h index f296a64d103b..a6959f72745e 100644 --- a/include/linux/nl80211.h +++ b/include/linux/nl80211.h @@ -1594,6 +1594,8 @@ enum nl80211_sta_flags { NL80211_STA_FLAG_MAX = __NL80211_STA_FLAG_AFTER_LAST - 1 }; +#define NL80211_STA_FLAG_MAX_OLD_API NL80211_STA_FLAG_TDLS_PEER + /** * struct nl80211_sta_flag_update - station flags mask/set * @mask: mask of station flags to set diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index b67b1114e25a..f1b0774d098b 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -2410,10 +2410,16 @@ static int parse_station_flags(struct genl_info *info, return -EINVAL; } - for (flag = 1; flag <= NL80211_STA_FLAG_MAX; flag++) - if (flags[flag]) + for (flag = 1; flag <= NL80211_STA_FLAG_MAX; flag++) { + if (flags[flag]) { params->sta_flags_set |= (1<<flag); + /* no longer support new API additions in old API */ + if (flag > NL80211_STA_FLAG_MAX_OLD_API) + return -EINVAL; + } + } + return 0; } |