cfg80211: wrap BSS kref
Add inline wrappers for the BSS struct krefs to be able to extend them easily later. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
9537f227b4
commit
0532d4f154
1 changed files with 15 additions and 5 deletions
|
@ -41,6 +41,16 @@ static void bss_release(struct kref *ref)
|
|||
kfree(bss);
|
||||
}
|
||||
|
||||
static inline void bss_ref_get(struct cfg80211_internal_bss *bss)
|
||||
{
|
||||
kref_get(&bss->ref);
|
||||
}
|
||||
|
||||
static inline void bss_ref_put(struct cfg80211_internal_bss *bss)
|
||||
{
|
||||
kref_put(&bss->ref, bss_release);
|
||||
}
|
||||
|
||||
static void __cfg80211_unlink_bss(struct cfg80211_registered_device *dev,
|
||||
struct cfg80211_internal_bss *bss)
|
||||
{
|
||||
|
@ -48,7 +58,7 @@ static void __cfg80211_unlink_bss(struct cfg80211_registered_device *dev,
|
|||
|
||||
list_del_init(&bss->list);
|
||||
rb_erase(&bss->rbn, &dev->bss_tree);
|
||||
kref_put(&bss->ref, bss_release);
|
||||
bss_ref_put(bss);
|
||||
}
|
||||
|
||||
static void __cfg80211_bss_expire(struct cfg80211_registered_device *dev,
|
||||
|
@ -456,7 +466,7 @@ struct cfg80211_bss *cfg80211_get_bss(struct wiphy *wiphy,
|
|||
continue;
|
||||
if (is_bss(&bss->pub, bssid, ssid, ssid_len)) {
|
||||
res = bss;
|
||||
kref_get(&res->ref);
|
||||
bss_ref_get(res);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -649,7 +659,7 @@ cfg80211_bss_update(struct cfg80211_registered_device *dev,
|
|||
dev->bss_generation++;
|
||||
spin_unlock_bh(&dev->bss_lock);
|
||||
|
||||
kref_get(&found->ref);
|
||||
bss_ref_get(found);
|
||||
return found;
|
||||
}
|
||||
|
||||
|
@ -816,7 +826,7 @@ void cfg80211_ref_bss(struct cfg80211_bss *pub)
|
|||
return;
|
||||
|
||||
bss = container_of(pub, struct cfg80211_internal_bss, pub);
|
||||
kref_get(&bss->ref);
|
||||
bss_ref_get(bss);
|
||||
}
|
||||
EXPORT_SYMBOL(cfg80211_ref_bss);
|
||||
|
||||
|
@ -828,7 +838,7 @@ void cfg80211_put_bss(struct cfg80211_bss *pub)
|
|||
return;
|
||||
|
||||
bss = container_of(pub, struct cfg80211_internal_bss, pub);
|
||||
kref_put(&bss->ref, bss_release);
|
||||
bss_ref_put(bss);
|
||||
}
|
||||
EXPORT_SYMBOL(cfg80211_put_bss);
|
||||
|
||||
|
|
Loading…
Reference in a new issue