Re: [PATCH] watchdog: core: Fix circular locking dependency

From: Guenter Roeck
Date: Thu Apr 21 2016 - 19:30:39 EST


On Thu, Apr 21, 2016 at 03:50:55PM +0100, One Thousand Gnomes wrote:
> > Turns out the call to cancel_delayed_work_sync() in watchdog_release()
> > is not necessary and can be dropped. If the worker is no longer necessary,
> > the subsequent call to watchdog_update_worker() will cancel it. If it is
> > already running, it won't do anything, since the worker function checks
> > if it needs to ping the watchdog or not.
>
> Is this actually true. Consider the pathalogical case of the device being
> closed and the modue unloaded. In that case the close completes, we drop
> the module count but could still do work on it.
>
Module unload is handled separately and also calls cancel_delayed_work_sync().

Guenter