]> git.itanic.dy.fi Git - linux-stable/blobdiff - kernel/workqueue.c
workqueue: re-add lockdep dependencies for flushing
[linux-stable] / kernel / workqueue.c
index aa520e715bbc6ae33c4884d05f10480496876cd6..661184fcd50300f56504370155f8a173ba597479 100644 (file)
@@ -2652,6 +2652,9 @@ void flush_workqueue(struct workqueue_struct *wq)
        if (WARN_ON(!wq_online))
                return;
 
+       lock_map_acquire(&wq->lockdep_map);
+       lock_map_release(&wq->lockdep_map);
+
        mutex_lock(&wq->mutex);
 
        /*
@@ -2905,6 +2908,11 @@ static bool __flush_work(struct work_struct *work, bool from_cancel)
        if (WARN_ON(!wq_online))
                return false;
 
+       if (!from_cancel) {
+               lock_map_acquire(&work->lockdep_map);
+               lock_map_release(&work->lockdep_map);
+       }
+
        if (start_flush_work(work, &barr, from_cancel)) {
                wait_for_completion(&barr.done);
                destroy_work_on_stack(&barr.work);