aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless/core.c
diff options
context:
space:
mode:
authorLuis R. Rodriguez <lrodriguez@atheros.com>2009-02-21 00:04:26 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-02-27 14:52:56 -0500
commit806a9e39670be4f1f861c346ec102a79e81b90c3 (patch)
treea83d6c06a1be211722385fd60433849db3a08625 /net/wireless/core.c
parent761cf7ecffc4bc079679e65c3b1ab107c1c1fb56 (diff)
cfg80211: make regulatory_request use wiphy_idx instead of wiphy
We do this so later on we can move the pending requests onto a workqueue. By using the wiphy_idx instead of the wiphy we can later easily check if the wiphy has disappeared or not. Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/wireless/core.c')
-rw-r--r--net/wireless/core.c30
1 files changed, 27 insertions, 3 deletions
diff --git a/net/wireless/core.c b/net/wireless/core.c
index e347093ccc73..b1a354b7fc06 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -40,9 +40,8 @@ DEFINE_MUTEX(cfg80211_mutex);
40/* for debugfs */ 40/* for debugfs */
41static struct dentry *ieee80211_debugfs_dir; 41static struct dentry *ieee80211_debugfs_dir;
42 42
43/* requires cfg80211_drv_mutex to be held! */ 43/* requires cfg80211_mutex to be held! */
44static struct cfg80211_registered_device * 44struct cfg80211_registered_device *cfg80211_drv_by_wiphy_idx(int wiphy_idx)
45cfg80211_drv_by_wiphy_idx(int wiphy_idx)
46{ 45{
47 struct cfg80211_registered_device *result = NULL, *drv; 46 struct cfg80211_registered_device *result = NULL, *drv;
48 47
@@ -61,6 +60,31 @@ cfg80211_drv_by_wiphy_idx(int wiphy_idx)
61 return result; 60 return result;
62} 61}
63 62
63int get_wiphy_idx(struct wiphy *wiphy)
64{
65 struct cfg80211_registered_device *drv;
66 if (!wiphy)
67 return WIPHY_IDX_STALE;
68 drv = wiphy_to_dev(wiphy);
69 return drv->wiphy_idx;
70}
71
72/* requires cfg80211_drv_mutex to be held! */
73struct wiphy *wiphy_idx_to_wiphy(int wiphy_idx)
74{
75 struct cfg80211_registered_device *drv;
76
77 if (!wiphy_idx_valid(wiphy_idx))
78 return NULL;
79
80 assert_cfg80211_lock();
81
82 drv = cfg80211_drv_by_wiphy_idx(wiphy_idx);
83 if (!drv)
84 return NULL;
85 return &drv->wiphy;
86}
87
64/* requires cfg80211_mutex to be held! */ 88/* requires cfg80211_mutex to be held! */
65static struct cfg80211_registered_device * 89static struct cfg80211_registered_device *
66__cfg80211_drv_from_info(struct genl_info *info) 90__cfg80211_drv_from_info(struct genl_info *info)