cfg80211: wrap BSS kref
Johannes Berg [Fri, 1 Feb 2013 00:34:36 +0000 (01:34 +0100)]
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>

net/wireless/scan.c

index 23b7e59..36daacb 100644 (file)
@@ -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);