mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-26 08:31:13 +00:00
mac80211: add sta_state callback
(based on Eliad's patch) Add a callback to notify the low-level driver whenever the state of a station changes. The driver is only notified when the station is actually in the mac80211 hash table, not for pre-insert state transitions. To allow the driver to replace sta_add/remove calls with this, call extra transitions with the NOTEXIST state. This callback can fail, so we need to be careful in handling it when a station is inserted, particularly in the IBSS case where we still keep the station entry around for mac80211 purposes. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
71ec375c75
commit
f09603a259
8 changed files with 202 additions and 36 deletions
|
@ -97,9 +97,17 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
|
|||
/* tear down aggregation sessions and remove STAs */
|
||||
mutex_lock(&local->sta_mtx);
|
||||
list_for_each_entry(sta, &local->sta_list, list) {
|
||||
if (sta->uploaded)
|
||||
if (sta->uploaded) {
|
||||
enum ieee80211_sta_state state;
|
||||
|
||||
drv_sta_remove(local, sta->sdata, &sta->sta);
|
||||
|
||||
state = sta->sta_state;
|
||||
for (; state > IEEE80211_STA_NOTEXIST; state--)
|
||||
WARN_ON(drv_sta_state(local, sdata, sta,
|
||||
state, state - 1));
|
||||
}
|
||||
|
||||
mesh_plink_quiesce(sta);
|
||||
}
|
||||
mutex_unlock(&local->sta_mtx);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue