diff options
Diffstat (limited to 'net/mac80211/work.c')
-rw-r--r-- | net/mac80211/work.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/net/mac80211/work.c b/net/mac80211/work.c index 15e1ba931b87..bdb1d05b16fc 100644 --- a/net/mac80211/work.c +++ b/net/mac80211/work.c | |||
@@ -920,11 +920,16 @@ static void ieee80211_work_work(struct work_struct *work) | |||
920 | run_again(local, jiffies + HZ/2); | 920 | run_again(local, jiffies + HZ/2); |
921 | } | 921 | } |
922 | 922 | ||
923 | if (list_empty(&local->work_list) && local->scan_req) | 923 | mutex_lock(&local->scan_mtx); |
924 | |||
925 | if (list_empty(&local->work_list) && local->scan_req && | ||
926 | !local->scanning) | ||
924 | ieee80211_queue_delayed_work(&local->hw, | 927 | ieee80211_queue_delayed_work(&local->hw, |
925 | &local->scan_work, | 928 | &local->scan_work, |
926 | round_jiffies_relative(0)); | 929 | round_jiffies_relative(0)); |
927 | 930 | ||
931 | mutex_unlock(&local->scan_mtx); | ||
932 | |||
928 | mutex_unlock(&local->work_mtx); | 933 | mutex_unlock(&local->work_mtx); |
929 | 934 | ||
930 | ieee80211_recalc_idle(local); | 935 | ieee80211_recalc_idle(local); |