OLD | NEW |
1 #include <net/mac80211.h> | 1 #include <net/mac80211.h> |
2 #include <net/rtnetlink.h> | 2 #include <net/rtnetlink.h> |
3 | 3 |
4 #include "ieee80211_i.h" | 4 #include "ieee80211_i.h" |
5 #include "mesh.h" | 5 #include "mesh.h" |
6 #include "driver-ops.h" | 6 #include "driver-ops.h" |
7 #include "led.h" | 7 #include "led.h" |
8 | 8 |
9 int __ieee80211_suspend(struct ieee80211_hw *hw) | 9 int __ieee80211_suspend(struct ieee80211_hw *hw) |
10 { | 10 { |
(...skipping 27 matching lines...) Expand all Loading... |
38 | 38 |
39 /* disable keys */ | 39 /* disable keys */ |
40 list_for_each_entry(sdata, &local->interfaces, list) | 40 list_for_each_entry(sdata, &local->interfaces, list) |
41 ieee80211_disable_keys(sdata); | 41 ieee80211_disable_keys(sdata); |
42 | 42 |
43 /* tear down aggregation sessions and remove STAs */ | 43 /* tear down aggregation sessions and remove STAs */ |
44 mutex_lock(&local->sta_mtx); | 44 mutex_lock(&local->sta_mtx); |
45 list_for_each_entry(sta, &local->sta_list, list) { | 45 list_for_each_entry(sta, &local->sta_list, list) { |
46 if (hw->flags & IEEE80211_HW_AMPDU_AGGREGATION) { | 46 if (hw->flags & IEEE80211_HW_AMPDU_AGGREGATION) { |
47 set_sta_flags(sta, WLAN_STA_BLOCK_BA); | 47 set_sta_flags(sta, WLAN_STA_BLOCK_BA); |
48 » » » ieee80211_sta_tear_down_BA_sessions(sta, true); | 48 » » » ieee80211_sta_tear_down_BA_sessions(sta); |
49 } | 49 } |
50 | 50 |
51 if (sta->uploaded) { | 51 if (sta->uploaded) { |
52 sdata = sta->sdata; | 52 sdata = sta->sdata; |
53 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) | 53 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) |
54 sdata = container_of(sdata->bss, | 54 sdata = container_of(sdata->bss, |
55 struct ieee80211_sub_if_data, | 55 struct ieee80211_sub_if_data, |
56 u.ap); | 56 u.ap); |
57 | 57 |
58 drv_sta_remove(local, sdata, &sta->sta); | 58 drv_sta_remove(local, sdata, &sta->sta); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 local->quiescing = false; | 104 local->quiescing = false; |
105 | 105 |
106 return 0; | 106 return 0; |
107 } | 107 } |
108 | 108 |
109 /* | 109 /* |
110 * __ieee80211_resume() is a static inline which just calls | 110 * __ieee80211_resume() is a static inline which just calls |
111 * ieee80211_reconfig(), which is also needed for hardware | 111 * ieee80211_reconfig(), which is also needed for hardware |
112 * hang/firmware failure/etc. recovery. | 112 * hang/firmware failure/etc. recovery. |
113 */ | 113 */ |
OLD | NEW |