diff --git a/[refs] b/[refs] index 70e04c13040e..336da164a5cd 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 00236aedf1d2c49a18ae9ea00698d97705ff7289 +refs/heads/master: 68dd5b7a45d1935fcd32b786e8d3d3f7bb4bbfe7 diff --git a/trunk/net/mac80211/work.c b/trunk/net/mac80211/work.c index 1e1ea3007b06..7bd8670379de 100644 --- a/trunk/net/mac80211/work.c +++ b/trunk/net/mac80211/work.c @@ -919,11 +919,16 @@ static void ieee80211_work_work(struct work_struct *work) run_again(local, jiffies + HZ/2); } - if (list_empty(&local->work_list) && local->scan_req) + mutex_lock(&local->scan_mtx); + + if (list_empty(&local->work_list) && local->scan_req && + !local->scanning) ieee80211_queue_delayed_work(&local->hw, &local->scan_work, round_jiffies_relative(0)); + mutex_unlock(&local->scan_mtx); + mutex_unlock(&local->work_mtx); ieee80211_recalc_idle(local);