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>
This commit is contained in:
Luis R. Rodriguez
2009-02-21 00:04:26 -05:00
committed by John W. Linville
parent 761cf7ecff
commit 806a9e3967
4 changed files with 82 additions and 30 deletions

View File

@@ -79,6 +79,12 @@ static inline void assert_cfg80211_lock(void)
BUG_ON(!mutex_is_locked(&cfg80211_mutex));
}
/*
* You can use this to mark a wiphy_idx as not having an associated wiphy.
* It guarantees cfg80211_drv_by_wiphy_idx(wiphy_idx) will return NULL
*/
#define WIPHY_IDX_STALE -1
struct cfg80211_internal_bss {
struct list_head list;
struct rb_node rbn;
@@ -88,6 +94,9 @@ struct cfg80211_internal_bss {
struct cfg80211_bss pub;
};
struct cfg80211_registered_device *cfg80211_drv_by_wiphy_idx(int wiphy_idx);
int get_wiphy_idx(struct wiphy *wiphy);
/*
* This function returns a pointer to the driver
* that the genl_info item that is passed refers to.
@@ -111,6 +120,9 @@ struct cfg80211_internal_bss {
extern struct cfg80211_registered_device *
cfg80211_get_dev_from_info(struct genl_info *info);
/* requires cfg80211_drv_mutex to be held! */
struct wiphy *wiphy_idx_to_wiphy(int wiphy_idx);
/* identical to cfg80211_get_dev_from_info but only operate on ifindex */
extern struct cfg80211_registered_device *
cfg80211_get_dev_from_ifindex(int ifindex);