mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-10 15:58:47 +00:00
wifi: cfg80211: use bss_from_pub() instead of container_of()
There's no need to open-code container_of() when we have bss_from_pub(). Use it. Change-Id: I074723717909ba211a40e6499f0c36df0e2ba4be Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
b2ddde566d
commit
61e41e5dfc
@ -158,9 +158,8 @@ static inline void bss_ref_put(struct cfg80211_registered_device *rdev,
|
||||
|
||||
if (bss->pub.hidden_beacon_bss) {
|
||||
struct cfg80211_internal_bss *hbss;
|
||||
hbss = container_of(bss->pub.hidden_beacon_bss,
|
||||
struct cfg80211_internal_bss,
|
||||
pub);
|
||||
|
||||
hbss = bss_from_pub(bss->pub.hidden_beacon_bss);
|
||||
hbss->refcount--;
|
||||
if (hbss->refcount == 0)
|
||||
bss_free(hbss);
|
||||
@ -169,9 +168,7 @@ static inline void bss_ref_put(struct cfg80211_registered_device *rdev,
|
||||
if (bss->pub.transmitted_bss) {
|
||||
struct cfg80211_internal_bss *tbss;
|
||||
|
||||
tbss = container_of(bss->pub.transmitted_bss,
|
||||
struct cfg80211_internal_bss,
|
||||
pub);
|
||||
tbss = bss_from_pub(bss->pub.transmitted_bss);
|
||||
tbss->refcount--;
|
||||
if (tbss->refcount == 0)
|
||||
bss_free(tbss);
|
||||
@ -1791,13 +1788,8 @@ cfg80211_bss_update(struct cfg80211_registered_device *rdev,
|
||||
|
||||
/* This must be before the call to bss_ref_get */
|
||||
if (tmp->pub.transmitted_bss) {
|
||||
struct cfg80211_internal_bss *pbss =
|
||||
container_of(tmp->pub.transmitted_bss,
|
||||
struct cfg80211_internal_bss,
|
||||
pub);
|
||||
|
||||
new->pub.transmitted_bss = tmp->pub.transmitted_bss;
|
||||
bss_ref_get(rdev, pbss);
|
||||
bss_ref_get(rdev, bss_from_pub(tmp->pub.transmitted_bss));
|
||||
}
|
||||
|
||||
list_add_tail(&new->list, &rdev->bss_list);
|
||||
@ -2570,15 +2562,12 @@ EXPORT_SYMBOL(cfg80211_inform_bss_frame_data);
|
||||
void cfg80211_ref_bss(struct wiphy *wiphy, struct cfg80211_bss *pub)
|
||||
{
|
||||
struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
|
||||
struct cfg80211_internal_bss *bss;
|
||||
|
||||
if (!pub)
|
||||
return;
|
||||
|
||||
bss = container_of(pub, struct cfg80211_internal_bss, pub);
|
||||
|
||||
spin_lock_bh(&rdev->bss_lock);
|
||||
bss_ref_get(rdev, bss);
|
||||
bss_ref_get(rdev, bss_from_pub(pub));
|
||||
spin_unlock_bh(&rdev->bss_lock);
|
||||
}
|
||||
EXPORT_SYMBOL(cfg80211_ref_bss);
|
||||
@ -2586,15 +2575,12 @@ EXPORT_SYMBOL(cfg80211_ref_bss);
|
||||
void cfg80211_put_bss(struct wiphy *wiphy, struct cfg80211_bss *pub)
|
||||
{
|
||||
struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
|
||||
struct cfg80211_internal_bss *bss;
|
||||
|
||||
if (!pub)
|
||||
return;
|
||||
|
||||
bss = container_of(pub, struct cfg80211_internal_bss, pub);
|
||||
|
||||
spin_lock_bh(&rdev->bss_lock);
|
||||
bss_ref_put(rdev, bss);
|
||||
bss_ref_put(rdev, bss_from_pub(pub));
|
||||
spin_unlock_bh(&rdev->bss_lock);
|
||||
}
|
||||
EXPORT_SYMBOL(cfg80211_put_bss);
|
||||
@ -2608,7 +2594,7 @@ void cfg80211_unlink_bss(struct wiphy *wiphy, struct cfg80211_bss *pub)
|
||||
if (WARN_ON(!pub))
|
||||
return;
|
||||
|
||||
bss = container_of(pub, struct cfg80211_internal_bss, pub);
|
||||
bss = bss_from_pub(pub);
|
||||
|
||||
spin_lock_bh(&rdev->bss_lock);
|
||||
if (list_empty(&bss->list))
|
||||
@ -2617,8 +2603,7 @@ void cfg80211_unlink_bss(struct wiphy *wiphy, struct cfg80211_bss *pub)
|
||||
list_for_each_entry_safe(nontrans_bss, tmp,
|
||||
&pub->nontrans_list,
|
||||
nontrans_list) {
|
||||
tmp1 = container_of(nontrans_bss,
|
||||
struct cfg80211_internal_bss, pub);
|
||||
tmp1 = bss_from_pub(nontrans_bss);
|
||||
if (__cfg80211_unlink_bss(rdev, tmp1))
|
||||
rdev->bss_generation++;
|
||||
}
|
||||
@ -2675,9 +2660,7 @@ void cfg80211_update_assoc_bss_entry(struct wireless_dev *wdev,
|
||||
|
||||
/* use transmitting bss */
|
||||
if (cbss->pub.transmitted_bss)
|
||||
cbss = container_of(cbss->pub.transmitted_bss,
|
||||
struct cfg80211_internal_bss,
|
||||
pub);
|
||||
cbss = bss_from_pub(cbss->pub.transmitted_bss);
|
||||
|
||||
cbss->pub.channel = chan;
|
||||
|
||||
@ -2706,8 +2689,7 @@ void cfg80211_update_assoc_bss_entry(struct wireless_dev *wdev,
|
||||
list_for_each_entry_safe(nontrans_bss, tmp,
|
||||
&new->pub.nontrans_list,
|
||||
nontrans_list) {
|
||||
bss = container_of(nontrans_bss,
|
||||
struct cfg80211_internal_bss, pub);
|
||||
bss = bss_from_pub(nontrans_bss);
|
||||
if (__cfg80211_unlink_bss(rdev, bss))
|
||||
rdev->bss_generation++;
|
||||
}
|
||||
@ -2724,8 +2706,7 @@ void cfg80211_update_assoc_bss_entry(struct wireless_dev *wdev,
|
||||
list_for_each_entry_safe(nontrans_bss, tmp,
|
||||
&cbss->pub.nontrans_list,
|
||||
nontrans_list) {
|
||||
bss = container_of(nontrans_bss,
|
||||
struct cfg80211_internal_bss, pub);
|
||||
bss = bss_from_pub(nontrans_bss);
|
||||
bss->pub.channel = chan;
|
||||
rb_erase(&bss->rbn, &rdev->bss_tree);
|
||||
rb_insert_bss(rdev, bss);
|
||||
|
Loading…
x
Reference in New Issue
Block a user