diff options
author | Andy Duan <fugang.duan@nxp.com> | 2018-09-13 17:23:37 +0800 |
---|---|---|
committer | Jason Liu <jason.hui.liu@nxp.com> | 2019-02-12 10:34:00 +0800 |
commit | d66b14c9a4b5b0c0a75f6c0b14258f684e4090b8 (patch) | |
tree | 9e1a3808221b5bf110945d95bd5540591b1b187b /net/wireless | |
parent | 19a7d0f8770391884a6ee331b76398f3adf728df (diff) |
MLK-19091 cfg80211: make phy index match after wiphy dev is released
During insmod/rmmod test, the phy index increases that cause troube
for test case. To make global variable wiphy_counter match between
creat and free wiphy device, it needs to decrease the atomic counter
when wiphy device is freed.
Reviewed-by: Richard Zhu <hongxing.zhu@nxp.com>
Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
Diffstat (limited to 'net/wireless')
-rw-r--r-- | net/wireless/core.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/wireless/core.c b/net/wireless/core.c index 45cbade9ad68..41ec0b89488c 100644 --- a/net/wireless/core.c +++ b/net/wireless/core.c @@ -41,6 +41,8 @@ MODULE_ALIAS_GENL_FAMILY(NL80211_GENL_NAME); LIST_HEAD(cfg80211_rdev_list); int cfg80211_rdev_list_generation; +static atomic_t wiphy_counter = ATOMIC_INIT(0); + /* for debugfs */ static struct dentry *ieee80211_debugfs_dir; @@ -383,8 +385,6 @@ static void cfg80211_propagate_cac_done_wk(struct work_struct *work) struct wiphy *wiphy_new_nm(const struct cfg80211_ops *ops, int sizeof_priv, const char *requested_name) { - static atomic_t wiphy_counter = ATOMIC_INIT(0); - struct cfg80211_registered_device *rdev; int alloc_size; @@ -972,6 +972,7 @@ void cfg80211_dev_free(struct cfg80211_registered_device *rdev) } list_for_each_entry_safe(scan, tmp, &rdev->bss_list, list) cfg80211_put_bss(&rdev->wiphy, &scan->pub); + atomic_dec(&wiphy_counter); kfree(rdev); } |