diff options
author | Anton Arapov <anton@redhat.com> | 2012-06-21 08:44:47 +0200 |
---|---|---|
committer | Anton Arapov <anton@redhat.com> | 2012-06-21 08:44:47 +0200 |
commit | 35df99f47c4246df74ed7571c692138b83c3c486 (patch) | |
tree | 1f14dd15cf001e590e7f7406c8e594a0003fcff0 /net/mac80211/iface.c | |
parent | 8a6c6e11d3f0dcecf13668e33f5095b1fe9cb613 (diff) | |
download | kernel-uprobes-35df99f47c4246df74ed7571c692138b83c3c486.tar.gz kernel-uprobes-35df99f47c4246df74ed7571c692138b83c3c486.tar.xz kernel-uprobes-35df99f47c4246df74ed7571c692138b83c3c486.zip |
fedora kernel: 3d47c715a4a94b9d700c9e4ec1fc3a786bfde746v3.4.3-3
Signed-off-by: Anton Arapov <anton@redhat.com>
Diffstat (limited to 'net/mac80211/iface.c')
-rw-r--r-- | net/mac80211/iface.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index c20051b7ffc..48f937e1ecf 100644 --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c @@ -514,6 +514,18 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata, ieee80211_configure_filter(local); break; default: + mutex_lock(&local->mtx); + if (local->hw_roc_dev == sdata->dev && + local->hw_roc_channel) { + /* ignore return value since this is racy */ + drv_cancel_remain_on_channel(local); + ieee80211_queue_work(&local->hw, &local->hw_roc_done); + } + mutex_unlock(&local->mtx); + + flush_work(&local->hw_roc_start); + flush_work(&local->hw_roc_done); + flush_work(&sdata->work); /* * When we get here, the interface is marked down. |