From: Johannes Berg Date: Fri, 23 Nov 2012 23:32:19 +0000 (+0100) Subject: mac80211: fix remain-on-channel (non-)cancelling X-Git-Tag: upstream/snapshot3+hdmi~6176^2~2^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6bdd253f635f7b2ef027d116933a6c9ec148b87f;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git mac80211: fix remain-on-channel (non-)cancelling Felix Liao reported that when an interface is set DOWN while another interface is executing a ROC, the warning in ieee80211_start_next_roc() (about the first item on the list having started already) triggers. This is because ieee80211_roc_purge() calls it even if it never actually changed the list of ROC items. To fix this, simply remove the function call. If it is needed then it will be done by the ieee80211_sw_roc_work() function when the ROC item that is being removed while active is cleaned up. Cc: stable@vger.kernel.org Reported-by: Felix Liao Signed-off-by: Johannes Berg Signed-off-by: John W. Linville --- diff --git a/net/mac80211/offchannel.c b/net/mac80211/offchannel.c index 83608ac..2c84185 100644 --- a/net/mac80211/offchannel.c +++ b/net/mac80211/offchannel.c @@ -458,8 +458,6 @@ void ieee80211_roc_purge(struct ieee80211_sub_if_data *sdata) list_move_tail(&roc->list, &tmp_list); roc->abort = true; } - - ieee80211_start_next_roc(local); mutex_unlock(&local->mtx); list_for_each_entry_safe(roc, tmp, &tmp_list, list) {