diff options
author | Johannes Berg <johannes.berg@intel.com> | 2012-12-13 17:42:30 +0100 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-01-03 13:01:35 +0100 |
commit | 8a61af65c6d03781015315dbc43d0942a5b31db9 (patch) | |
tree | 624695ba646281508490cb1737fb69d8174fa87a /net/mac80211/chan.c | |
parent | 529ba6e9313dbe60dab7e72c6fdf647a012e9f5b (diff) | |
download | lwn-8a61af65c6d03781015315dbc43d0942a5b31db9.tar.gz lwn-8a61af65c6d03781015315dbc43d0942a5b31db9.zip |
mac80211: fix channel context iteration
During suspend/resume channel contexts might be
iterated even if they haven't been re-added to
the driver, keep track of this and skip them in
iteration. Also use the new status for sanity
checks.
Also clarify the fact that during HW restart all
contexts are iterated over (thanks Eliad.)
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/chan.c')
-rw-r--r-- | net/mac80211/chan.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/mac80211/chan.c b/net/mac80211/chan.c index 80e55527504b..1bfe0a8b19d2 100644 --- a/net/mac80211/chan.c +++ b/net/mac80211/chan.c @@ -381,7 +381,8 @@ void ieee80211_iter_chan_contexts_atomic( rcu_read_lock(); list_for_each_entry_rcu(ctx, &local->chanctx_list, list) - iter(hw, &ctx->conf, iter_data); + if (ctx->driver_present) + iter(hw, &ctx->conf, iter_data); rcu_read_unlock(); } EXPORT_SYMBOL_GPL(ieee80211_iter_chan_contexts_atomic); |