diff options
Diffstat (limited to 'net/mac80211/util.c')
-rw-r--r-- | net/mac80211/util.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/net/mac80211/util.c b/net/mac80211/util.c index d57e5f6bd8b6..1f82191ce601 100644 --- a/net/mac80211/util.c +++ b/net/mac80211/util.c | |||
@@ -2110,15 +2110,6 @@ int ieee80211_reconfig(struct ieee80211_local *local) | |||
2110 | cfg80211_sched_scan_stopped_rtnl(local->hw.wiphy, 0); | 2110 | cfg80211_sched_scan_stopped_rtnl(local->hw.wiphy, 0); |
2111 | 2111 | ||
2112 | wake_up: | 2112 | wake_up: |
2113 | if (local->in_reconfig) { | ||
2114 | local->in_reconfig = false; | ||
2115 | barrier(); | ||
2116 | |||
2117 | /* Restart deferred ROCs */ | ||
2118 | mutex_lock(&local->mtx); | ||
2119 | ieee80211_start_next_roc(local); | ||
2120 | mutex_unlock(&local->mtx); | ||
2121 | } | ||
2122 | 2113 | ||
2123 | if (local->monitors == local->open_count && local->monitors > 0) | 2114 | if (local->monitors == local->open_count && local->monitors > 0) |
2124 | ieee80211_add_virtual_monitor(local); | 2115 | ieee80211_add_virtual_monitor(local); |
@@ -2146,6 +2137,16 @@ int ieee80211_reconfig(struct ieee80211_local *local) | |||
2146 | mutex_unlock(&local->sta_mtx); | 2137 | mutex_unlock(&local->sta_mtx); |
2147 | } | 2138 | } |
2148 | 2139 | ||
2140 | if (local->in_reconfig) { | ||
2141 | local->in_reconfig = false; | ||
2142 | barrier(); | ||
2143 | |||
2144 | /* Restart deferred ROCs */ | ||
2145 | mutex_lock(&local->mtx); | ||
2146 | ieee80211_start_next_roc(local); | ||
2147 | mutex_unlock(&local->mtx); | ||
2148 | } | ||
2149 | |||
2149 | ieee80211_wake_queues_by_reason(hw, IEEE80211_MAX_QUEUE_MAP, | 2150 | ieee80211_wake_queues_by_reason(hw, IEEE80211_MAX_QUEUE_MAP, |
2150 | IEEE80211_QUEUE_STOP_REASON_SUSPEND, | 2151 | IEEE80211_QUEUE_STOP_REASON_SUSPEND, |
2151 | false); | 2152 | false); |