diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-01-03 22:55:21 +0000 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-01-03 22:55:21 +0000 |
commit | 04228460a3ded723b2da09141c76c45ddd712caf (patch) | |
tree | db7b9143b150ead1e9fec10760a1d5ff4045a5e7 /net/mac80211/work.c | |
parent | 7c0ab43e6ab09d72dc8dbac2521b2f819ccc4026 (diff) | |
parent | 24c78557741395e038e83f25367cf2bfd7f582b8 (diff) | |
download | lwn-04228460a3ded723b2da09141c76c45ddd712caf.tar.gz lwn-04228460a3ded723b2da09141c76c45ddd712caf.zip |
Merge branch 'fix' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6
Diffstat (limited to 'net/mac80211/work.c')
-rw-r--r-- | net/mac80211/work.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/mac80211/work.c b/net/mac80211/work.c index ae344d1ba056..146097cb43a7 100644 --- a/net/mac80211/work.c +++ b/net/mac80211/work.c @@ -1051,11 +1051,13 @@ void ieee80211_work_purge(struct ieee80211_sub_if_data *sdata) { struct ieee80211_local *local = sdata->local; struct ieee80211_work *wk; + bool cleanup = false; mutex_lock(&local->mtx); list_for_each_entry(wk, &local->work_list, list) { if (wk->sdata != sdata) continue; + cleanup = true; wk->type = IEEE80211_WORK_ABORT; wk->started = true; wk->timeout = jiffies; @@ -1063,7 +1065,8 @@ void ieee80211_work_purge(struct ieee80211_sub_if_data *sdata) mutex_unlock(&local->mtx); /* run cleanups etc. */ - ieee80211_work_work(&local->work_work); + if (cleanup) + ieee80211_work_work(&local->work_work); mutex_lock(&local->mtx); list_for_each_entry(wk, &local->work_list, list) { |