Commit 61e41e5d authored by Johannes Berg's avatar Johannes Berg

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: default avatarJohannes Berg <johannes.berg@intel.com>
parent b2ddde56
...@@ -158,9 +158,8 @@ static inline void bss_ref_put(struct cfg80211_registered_device *rdev, ...@@ -158,9 +158,8 @@ static inline void bss_ref_put(struct cfg80211_registered_device *rdev,
if (bss->pub.hidden_beacon_bss) { if (bss->pub.hidden_beacon_bss) {
struct cfg80211_internal_bss *hbss; struct cfg80211_internal_bss *hbss;
hbss = container_of(bss->pub.hidden_beacon_bss,
struct cfg80211_internal_bss, hbss = bss_from_pub(bss->pub.hidden_beacon_bss);
pub);
hbss->refcount--; hbss->refcount--;
if (hbss->refcount == 0) if (hbss->refcount == 0)
bss_free(hbss); bss_free(hbss);
...@@ -169,9 +168,7 @@ static inline void bss_ref_put(struct cfg80211_registered_device *rdev, ...@@ -169,9 +168,7 @@ static inline void bss_ref_put(struct cfg80211_registered_device *rdev,
if (bss->pub.transmitted_bss) { if (bss->pub.transmitted_bss) {
struct cfg80211_internal_bss *tbss; struct cfg80211_internal_bss *tbss;
tbss = container_of(bss->pub.transmitted_bss, tbss = bss_from_pub(bss->pub.transmitted_bss);
struct cfg80211_internal_bss,
pub);
tbss->refcount--; tbss->refcount--;
if (tbss->refcount == 0) if (tbss->refcount == 0)
bss_free(tbss); bss_free(tbss);
...@@ -1791,13 +1788,8 @@ cfg80211_bss_update(struct cfg80211_registered_device *rdev, ...@@ -1791,13 +1788,8 @@ cfg80211_bss_update(struct cfg80211_registered_device *rdev,
/* This must be before the call to bss_ref_get */ /* This must be before the call to bss_ref_get */
if (tmp->pub.transmitted_bss) { 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; 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); list_add_tail(&new->list, &rdev->bss_list);
...@@ -2570,15 +2562,12 @@ EXPORT_SYMBOL(cfg80211_inform_bss_frame_data); ...@@ -2570,15 +2562,12 @@ EXPORT_SYMBOL(cfg80211_inform_bss_frame_data);
void cfg80211_ref_bss(struct wiphy *wiphy, struct cfg80211_bss *pub) void cfg80211_ref_bss(struct wiphy *wiphy, struct cfg80211_bss *pub)
{ {
struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy); struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
struct cfg80211_internal_bss *bss;
if (!pub) if (!pub)
return; return;
bss = container_of(pub, struct cfg80211_internal_bss, pub);
spin_lock_bh(&rdev->bss_lock); 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); spin_unlock_bh(&rdev->bss_lock);
} }
EXPORT_SYMBOL(cfg80211_ref_bss); EXPORT_SYMBOL(cfg80211_ref_bss);
...@@ -2586,15 +2575,12 @@ 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) void cfg80211_put_bss(struct wiphy *wiphy, struct cfg80211_bss *pub)
{ {
struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy); struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
struct cfg80211_internal_bss *bss;
if (!pub) if (!pub)
return; return;
bss = container_of(pub, struct cfg80211_internal_bss, pub);
spin_lock_bh(&rdev->bss_lock); 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); spin_unlock_bh(&rdev->bss_lock);
} }
EXPORT_SYMBOL(cfg80211_put_bss); EXPORT_SYMBOL(cfg80211_put_bss);
...@@ -2608,7 +2594,7 @@ void cfg80211_unlink_bss(struct wiphy *wiphy, struct cfg80211_bss *pub) ...@@ -2608,7 +2594,7 @@ void cfg80211_unlink_bss(struct wiphy *wiphy, struct cfg80211_bss *pub)
if (WARN_ON(!pub)) if (WARN_ON(!pub))
return; return;
bss = container_of(pub, struct cfg80211_internal_bss, pub); bss = bss_from_pub(pub);
spin_lock_bh(&rdev->bss_lock); spin_lock_bh(&rdev->bss_lock);
if (list_empty(&bss->list)) if (list_empty(&bss->list))
...@@ -2617,8 +2603,7 @@ void cfg80211_unlink_bss(struct wiphy *wiphy, struct cfg80211_bss *pub) ...@@ -2617,8 +2603,7 @@ void cfg80211_unlink_bss(struct wiphy *wiphy, struct cfg80211_bss *pub)
list_for_each_entry_safe(nontrans_bss, tmp, list_for_each_entry_safe(nontrans_bss, tmp,
&pub->nontrans_list, &pub->nontrans_list,
nontrans_list) { nontrans_list) {
tmp1 = container_of(nontrans_bss, tmp1 = bss_from_pub(nontrans_bss);
struct cfg80211_internal_bss, pub);
if (__cfg80211_unlink_bss(rdev, tmp1)) if (__cfg80211_unlink_bss(rdev, tmp1))
rdev->bss_generation++; rdev->bss_generation++;
} }
...@@ -2675,9 +2660,7 @@ void cfg80211_update_assoc_bss_entry(struct wireless_dev *wdev, ...@@ -2675,9 +2660,7 @@ void cfg80211_update_assoc_bss_entry(struct wireless_dev *wdev,
/* use transmitting bss */ /* use transmitting bss */
if (cbss->pub.transmitted_bss) if (cbss->pub.transmitted_bss)
cbss = container_of(cbss->pub.transmitted_bss, cbss = bss_from_pub(cbss->pub.transmitted_bss);
struct cfg80211_internal_bss,
pub);
cbss->pub.channel = chan; cbss->pub.channel = chan;
...@@ -2706,8 +2689,7 @@ void cfg80211_update_assoc_bss_entry(struct wireless_dev *wdev, ...@@ -2706,8 +2689,7 @@ void cfg80211_update_assoc_bss_entry(struct wireless_dev *wdev,
list_for_each_entry_safe(nontrans_bss, tmp, list_for_each_entry_safe(nontrans_bss, tmp,
&new->pub.nontrans_list, &new->pub.nontrans_list,
nontrans_list) { nontrans_list) {
bss = container_of(nontrans_bss, bss = bss_from_pub(nontrans_bss);
struct cfg80211_internal_bss, pub);
if (__cfg80211_unlink_bss(rdev, bss)) if (__cfg80211_unlink_bss(rdev, bss))
rdev->bss_generation++; rdev->bss_generation++;
} }
...@@ -2724,8 +2706,7 @@ void cfg80211_update_assoc_bss_entry(struct wireless_dev *wdev, ...@@ -2724,8 +2706,7 @@ void cfg80211_update_assoc_bss_entry(struct wireless_dev *wdev,
list_for_each_entry_safe(nontrans_bss, tmp, list_for_each_entry_safe(nontrans_bss, tmp,
&cbss->pub.nontrans_list, &cbss->pub.nontrans_list,
nontrans_list) { nontrans_list) {
bss = container_of(nontrans_bss, bss = bss_from_pub(nontrans_bss);
struct cfg80211_internal_bss, pub);
bss->pub.channel = chan; bss->pub.channel = chan;
rb_erase(&bss->rbn, &rdev->bss_tree); rb_erase(&bss->rbn, &rdev->bss_tree);
rb_insert_bss(rdev, bss); rb_insert_bss(rdev, bss);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment