From bf31114120840c9cad9bbf03a8c46b30a29ca5f9 Mon Sep 17 00:00:00 2001 From: Herton Ronaldo Krzesinski Date: Mon, 13 Dec 2010 11:43:51 -0200 Subject: [PATCH] --- yaml --- r: 223619 b: refs/heads/master c: 8808f64171deec62346888e156e3adb636e2a31a h: refs/heads/master i: 223617: ebfec2faf50d58beceb64a1094e4cde36e7678ee 223615: 9ad19a9daaafe95740817284479c083db44f7999 v: v3 --- [refs] | 2 +- trunk/net/mac80211/work.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 39ba9d716566..692ab7dbf6dd 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 16cad7fba037b34ca32cc0adac65bc089d969fb8 +refs/heads/master: 8808f64171deec62346888e156e3adb636e2a31a diff --git a/trunk/net/mac80211/work.c b/trunk/net/mac80211/work.c index ae344d1ba056..146097cb43a7 100644 --- a/trunk/net/mac80211/work.c +++ b/trunk/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) {