Commit e8e27c66 authored by Amitkumar Karwar's avatar Amitkumar Karwar Committed by Johannes Berg

cfg80211: code rearrangement to avoid forward declarations

bss_release() and __cfg80211_unlink_bss() function definitions
are moved at the begining of the file. They are used in next
patch in this series.
Signed-off-by: default avatarAmitkumar Karwar <akarwar@marvell.com>
Signed-off-by: default avatarBing Zhao <bzhao@marvell.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent ed473771
...@@ -20,6 +20,33 @@ ...@@ -20,6 +20,33 @@
#define IEEE80211_SCAN_RESULT_EXPIRE (30 * HZ) #define IEEE80211_SCAN_RESULT_EXPIRE (30 * HZ)
static void bss_release(struct kref *ref)
{
struct cfg80211_internal_bss *bss;
bss = container_of(ref, struct cfg80211_internal_bss, ref);
if (bss->pub.free_priv)
bss->pub.free_priv(&bss->pub);
if (bss->beacon_ies_allocated)
kfree(bss->pub.beacon_ies);
if (bss->proberesp_ies_allocated)
kfree(bss->pub.proberesp_ies);
BUG_ON(atomic_read(&bss->hold));
kfree(bss);
}
/* must hold dev->bss_lock! */
static void __cfg80211_unlink_bss(struct cfg80211_registered_device *dev,
struct cfg80211_internal_bss *bss)
{
list_del_init(&bss->list);
rb_erase(&bss->rbn, &dev->bss_tree);
kref_put(&bss->ref, bss_release);
}
void ___cfg80211_scan_done(struct cfg80211_registered_device *rdev, bool leak) void ___cfg80211_scan_done(struct cfg80211_registered_device *rdev, bool leak)
{ {
struct cfg80211_scan_request *request; struct cfg80211_scan_request *request;
...@@ -158,24 +185,6 @@ int __cfg80211_stop_sched_scan(struct cfg80211_registered_device *rdev, ...@@ -158,24 +185,6 @@ int __cfg80211_stop_sched_scan(struct cfg80211_registered_device *rdev,
return 0; return 0;
} }
static void bss_release(struct kref *ref)
{
struct cfg80211_internal_bss *bss;
bss = container_of(ref, struct cfg80211_internal_bss, ref);
if (bss->pub.free_priv)
bss->pub.free_priv(&bss->pub);
if (bss->beacon_ies_allocated)
kfree(bss->pub.beacon_ies);
if (bss->proberesp_ies_allocated)
kfree(bss->pub.proberesp_ies);
BUG_ON(atomic_read(&bss->hold));
kfree(bss);
}
/* must hold dev->bss_lock! */ /* must hold dev->bss_lock! */
void cfg80211_bss_age(struct cfg80211_registered_device *dev, void cfg80211_bss_age(struct cfg80211_registered_device *dev,
unsigned long age_secs) unsigned long age_secs)
...@@ -188,15 +197,6 @@ void cfg80211_bss_age(struct cfg80211_registered_device *dev, ...@@ -188,15 +197,6 @@ void cfg80211_bss_age(struct cfg80211_registered_device *dev,
} }
} }
/* must hold dev->bss_lock! */
static void __cfg80211_unlink_bss(struct cfg80211_registered_device *dev,
struct cfg80211_internal_bss *bss)
{
list_del_init(&bss->list);
rb_erase(&bss->rbn, &dev->bss_tree);
kref_put(&bss->ref, bss_release);
}
/* must hold dev->bss_lock! */ /* must hold dev->bss_lock! */
void cfg80211_bss_expire(struct cfg80211_registered_device *dev) void cfg80211_bss_expire(struct cfg80211_registered_device *dev)
{ {
......
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