aboutsummaryrefslogtreecommitdiff
path: root/net/wireless
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-02-01 01:34:36 +0100
committerJohannes Berg <johannes.berg@intel.com>2013-02-04 18:57:46 +0100
commit0532d4f154b87da6361ab90d12f35142d5119dc1 (patch)
tree839e9ba5ab322e5d863b526f547614b297da9e52 /net/wireless
parent9537f227b44762591a5598b79522789c573d34b3 (diff)
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>
Diffstat (limited to 'net/wireless')
-rw-r--r--net/wireless/scan.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/net/wireless/scan.c b/net/wireless/scan.c
index 23b7e59c650..36daacb3178 100644
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
@@ -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);