cfg80211: move cookie_counter out of wiphy
There's no reason for drivers to be able to access the cfg80211 internal cookie counter; move it out of the wiphy into the rdev structure. While at it, also make it never assign 0 as a cookie (we consider that invalid in some places), and warn if we manage to do that for some reason (wrapping is not likely to happen with a u64.) Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
@@ -66,6 +66,7 @@ struct cfg80211_registered_device {
|
||||
/* protected by RTNL only */
|
||||
int num_running_ifaces;
|
||||
int num_running_monitor_ifaces;
|
||||
u64 cookie_counter;
|
||||
|
||||
/* BSSes/scanning */
|
||||
spinlock_t bss_lock;
|
||||
@@ -133,6 +134,16 @@ cfg80211_rdev_free_wowlan(struct cfg80211_registered_device *rdev)
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline u64 cfg80211_assign_cookie(struct cfg80211_registered_device *rdev)
|
||||
{
|
||||
u64 r = ++rdev->cookie_counter;
|
||||
|
||||
if (WARN_ON(r == 0))
|
||||
r = ++rdev->cookie_counter;
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
extern struct workqueue_struct *cfg80211_wq;
|
||||
extern struct list_head cfg80211_rdev_list;
|
||||
extern int cfg80211_rdev_list_generation;
|
||||
|
Reference in New Issue
Block a user