diff --git a/kernel/workqueue.c b/kernel/workqueue.c index ccefe574dcf7f93b99cc3bb8b415096111a37395..47cdd7e76f2bc3a47d8b9dba8ba8154b96e91163 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -647,7 +647,7 @@ EXPORT_SYMBOL(schedule_delayed_work); */ void flush_delayed_work(struct delayed_work *dwork) { - if (del_timer(&dwork->timer)) { + if (del_timer_sync(&dwork->timer)) { struct cpu_workqueue_struct *cwq; cwq = wq_per_cpu(keventd_wq, get_cpu()); __queue_work(cwq, &dwork->work);