Re: [PATCH net-next] devlink: Change devlink health locking mechanism

From: Jakub Kicinski
Date: Mon Apr 29 2019 - 15:29:20 EST


On Mon, 29 Apr 2019 12:41:45 +0300, Moshe Shemesh wrote:
> The devlink health reporters create/destroy and user commands currently
> use the devlink->lock as a locking mechanism. Different reporters have
> different rules in the driver and are being created/destroyed during
> different stages of driver load/unload/running. So during execution of a
> reporter recover the flow can go through another reporter's destroy and
> create. Such flow leads to deadlock trying to lock a mutex already
> held.
>
> With the new locking mechanism the different reporters share mutex lock
> only to protect access to shared reporters list.
> Added refcount per reporter, to protect the reporters from destroy while
> being used.
>
> Signed-off-by: Moshe Shemesh <moshe@xxxxxxxxxxxx>

Acked-by: Jakub Kicinski <jakub.kicinski@xxxxxxxxxxxxx>

Thanks!