diff options
author | Johannes Berg <johannes.berg@intel.com> | 2018-08-22 11:49:04 +0200 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2018-08-22 17:31:38 +0200 |
commit | 87915adc3f0acdf03c776df42e308e5a155c19af (patch) | |
tree | cce568b654b2bb6e7d893655c9693b370dcd98bd /drivers/iommu/iommu.c | |
parent | workqueue: skip lockdep wq dependency in cancel_work_sync() (diff) | |
download | linux-87915adc3f0acdf03c776df42e308e5a155c19af.tar.xz linux-87915adc3f0acdf03c776df42e308e5a155c19af.zip |
workqueue: re-add lockdep dependencies for flushing
In flush_work(), we need to create a lockdep dependency so that
the following scenario is appropriately tagged as a problem:
work_function()
{
mutex_lock(&mutex);
...
}
other_function()
{
mutex_lock(&mutex);
flush_work(&work); // or cancel_work_sync(&work);
}
This is a problem since the work might be running and be blocked
on trying to acquire the mutex.
Similarly, in flush_workqueue().
These were removed after cross-release partially caught these
problems, but now cross-release was reverted anyway. IMHO the
removal was erroneous anyway though, since lockdep should be
able to catch potential problems, not just actual ones, and
cross-release would only have caught the problem when actually
invoking wait_for_completion().
Fixes: fd1a5b04dfb8 ("workqueue: Remove now redundant lock acquisitions wrt. workqueue flushes")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'drivers/iommu/iommu.c')
0 files changed, 0 insertions, 0 deletions