cfg80211: comprehensively check station changes
authorJohannes Berg <johannes.berg@intel.com>
Thu, 14 Feb 2013 23:48:33 +0000 (00:48 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 6 Mar 2013 15:35:40 +0000 (16:35 +0100)
commit77ee7c891a04c3d254711ddf1bde5d7381339fb3
tree0983da0e1067bcf1c4b34ffd6bc8a0fb97eb5dfd
parentff276691e9f13bc1619cc8f091fb887c2b4f98a1
cfg80211: comprehensively check station changes

The station change API isn't being checked properly before
drivers are called, and as a result it is difficult to see
what should be allowed and what not.

In order to comprehensively check the API parameters parse
everything first, and then have the driver call a function
(cfg80211_check_station_change()) with the additionally
information about the kind of station that is being changed;
this allows the function to make better decisions than the
old code could.

While at it, also add a few checks, particularly in mesh
and clarify the TDLS station lifetime in documentation.

To be able to reduce a few checks, ignore any flag set bits
when the mask isn't set, they shouldn't be applied then.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/ath/ath6kl/cfg80211.c
include/net/cfg80211.h
include/uapi/linux/nl80211.h
net/mac80211/cfg.c
net/wireless/nl80211.c