Messages in this thread Patch in this message | | | From | Bart Van Assche <> | Subject | [PATCH 1/3] kernel/workqueue: Remove lockdep annotation from __flush_work() | Date | Thu, 25 Oct 2018 08:05:38 -0700 |
| |
As documented in a comment in start_flush_work(), calling flush_work() from a multi-threaded workqueue is safe if that workqueue is not equipped with a rescuer. Avoid that flush_work() calls from inside a work item executing on such a queue trigger a lockdep complaint. Remove the lockdep annotation from __flush_work() because start_flush_work() already has such an annotation.
Fixes: 87915adc3f0a ("workqueue: re-add lockdep dependencies for flushing") Cc: Johannes Berg <johannes.berg@intel.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Bart Van Assche <bvanassche@acm.org> --- kernel/workqueue.c | 5 ----- 1 file changed, 5 deletions(-)
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 0280deac392e..6755ef21a679 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -2908,11 +2908,6 @@ 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); -- 2.19.1.568.g152ad8e336-goog
| |