aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorAmitkumar Karwar <akarwar@marvell.com>2012-10-12 00:03:33 -0400
committerJohannes Berg <johannes.berg@intel.com>2012-10-18 03:01:26 -0400
commite8e27c668bf5977d9fe1a64d0b69598ff9e292b7 (patch)
tree2e8b858f0b190edb6dba705cc386552f0b66e20e /net
parented47377154310fd2fd59d75fcdeb3d022344fb31 (diff)
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: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net')
-rw-r--r--net/wireless/scan.c54
1 files changed, 27 insertions, 27 deletions
diff --git a/net/wireless/scan.c b/net/wireless/scan.c
index 9730c9862bdc..20050965abca 100644
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
@@ -20,6 +20,33 @@
20 20
21#define IEEE80211_SCAN_RESULT_EXPIRE (30 * HZ) 21#define IEEE80211_SCAN_RESULT_EXPIRE (30 * HZ)
22 22
23static void bss_release(struct kref *ref)
24{
25 struct cfg80211_internal_bss *bss;
26
27 bss = container_of(ref, struct cfg80211_internal_bss, ref);
28 if (bss->pub.free_priv)
29 bss->pub.free_priv(&bss->pub);
30
31 if (bss->beacon_ies_allocated)
32 kfree(bss->pub.beacon_ies);
33 if (bss->proberesp_ies_allocated)
34 kfree(bss->pub.proberesp_ies);
35
36 BUG_ON(atomic_read(&bss->hold));
37
38 kfree(bss);
39}
40
41/* must hold dev->bss_lock! */
42static void __cfg80211_unlink_bss(struct cfg80211_registered_device *dev,
43 struct cfg80211_internal_bss *bss)
44{
45 list_del_init(&bss->list);
46 rb_erase(&bss->rbn, &dev->bss_tree);
47 kref_put(&bss->ref, bss_release);
48}
49
23void ___cfg80211_scan_done(struct cfg80211_registered_device *rdev, bool leak) 50void ___cfg80211_scan_done(struct cfg80211_registered_device *rdev, bool leak)
24{ 51{
25 struct cfg80211_scan_request *request; 52 struct cfg80211_scan_request *request;
@@ -158,24 +185,6 @@ int __cfg80211_stop_sched_scan(struct cfg80211_registered_device *rdev,
158 return 0; 185 return 0;
159} 186}
160 187
161static void bss_release(struct kref *ref)
162{
163 struct cfg80211_internal_bss *bss;
164
165 bss = container_of(ref, struct cfg80211_internal_bss, ref);
166 if (bss->pub.free_priv)
167 bss->pub.free_priv(&bss->pub);
168
169 if (bss->beacon_ies_allocated)
170 kfree(bss->pub.beacon_ies);
171 if (bss->proberesp_ies_allocated)
172 kfree(bss->pub.proberesp_ies);
173
174 BUG_ON(atomic_read(&bss->hold));
175
176 kfree(bss);
177}
178
179/* must hold dev->bss_lock! */ 188/* must hold dev->bss_lock! */
180void cfg80211_bss_age(struct cfg80211_registered_device *dev, 189void cfg80211_bss_age(struct cfg80211_registered_device *dev,
181 unsigned long age_secs) 190 unsigned long age_secs)
@@ -189,15 +198,6 @@ void cfg80211_bss_age(struct cfg80211_registered_device *dev,
189} 198}
190 199
191/* must hold dev->bss_lock! */ 200/* must hold dev->bss_lock! */
192static void __cfg80211_unlink_bss(struct cfg80211_registered_device *dev,
193 struct cfg80211_internal_bss *bss)
194{
195 list_del_init(&bss->list);
196 rb_erase(&bss->rbn, &dev->bss_tree);
197 kref_put(&bss->ref, bss_release);
198}
199
200/* must hold dev->bss_lock! */
201void cfg80211_bss_expire(struct cfg80211_registered_device *dev) 201void cfg80211_bss_expire(struct cfg80211_registered_device *dev)
202{ 202{
203 struct cfg80211_internal_bss *bss, *tmp; 203 struct cfg80211_internal_bss *bss, *tmp;