Re: [PATCH 2/2] workqueue: create lockdep dependency in flush_work()

From: Tejun Heo
Date: Tue Aug 21 2018 - 12:09:20 EST


On Tue, Aug 21, 2018 at 02:03:17PM +0200, Johannes Berg wrote:
> From: Johannes Berg <johannes.berg@xxxxxxxxx>
>
> 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.
>
> Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>

This makes sense to me. Did you notice any extra lockdep warnings
with this?

Thanks.

--
tejun