mac80211: delay IBSS station insertion
In order to notify drivers and simplify the station management code, defer IBSS station insertion to a work item and don't do it directly while receiving a frame. This increases the complexity in IBSS a little bit, but it's pretty straight forward and it allows us to reduce the station management complexity (next patch) considerably. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
56544160d4
commit
8bf11d8d08
@@ -482,6 +482,9 @@ struct ieee80211_if_ibss {
|
||||
struct sk_buff __rcu *presp;
|
||||
struct sk_buff *skb;
|
||||
|
||||
spinlock_t incomplete_lock;
|
||||
struct list_head incomplete_stations;
|
||||
|
||||
enum {
|
||||
IEEE80211_IBSS_MLME_SEARCH,
|
||||
IEEE80211_IBSS_MLME_JOINED,
|
||||
@@ -1172,9 +1175,8 @@ void ieee80211_sta_reset_conn_monitor(struct ieee80211_sub_if_data *sdata);
|
||||
/* IBSS code */
|
||||
void ieee80211_ibss_notify_scan_completed(struct ieee80211_local *local);
|
||||
void ieee80211_ibss_setup_sdata(struct ieee80211_sub_if_data *sdata);
|
||||
struct sta_info *ieee80211_ibss_add_sta(struct ieee80211_sub_if_data *sdata,
|
||||
u8 *bssid, u8 *addr, u32 supp_rates,
|
||||
gfp_t gfp);
|
||||
void ieee80211_ibss_rx_no_sta(struct ieee80211_sub_if_data *sdata,
|
||||
const u8 *bssid, const u8 *addr, u32 supp_rates);
|
||||
int ieee80211_ibss_join(struct ieee80211_sub_if_data *sdata,
|
||||
struct cfg80211_ibss_params *params);
|
||||
int ieee80211_ibss_leave(struct ieee80211_sub_if_data *sdata);
|
||||
|
Reference in New Issue
Block a user