Message ID | 20200720143150.40362-1-liujian56@huawei.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [net] mlxsw: destroy workqueue when trap_register in mlxsw_emad_init | expand |
On Mon, Jul 20, 2020 at 10:31:49PM +0800, Liu Jian wrote: > When mlxsw_core_trap_register fails in mlxsw_emad_init, > destroy_workqueue() shouled be called to destroy mlxsw_core->emad_wq. > > Fixes: d965465b60ba ("mlxsw: core: Fix possible deadlock") > Signed-off-by: Liu Jian <liujian56@huawei.com> Reviewed-by: Ido Schimmel <idosch@mellanox.com> Thanks!
From: Liu Jian <liujian56@huawei.com> Date: Mon, 20 Jul 2020 22:31:49 +0800 > When mlxsw_core_trap_register fails in mlxsw_emad_init, > destroy_workqueue() shouled be called to destroy mlxsw_core->emad_wq. > > Fixes: d965465b60ba ("mlxsw: core: Fix possible deadlock") > Signed-off-by: Liu Jian <liujian56@huawei.com> Applied and queued up for -stable, thanks.
diff --git a/drivers/net/ethernet/mellanox/mlxsw/core.c b/drivers/net/ethernet/mellanox/mlxsw/core.c index 1363168b3c82..b01f8f2fab63 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/core.c +++ b/drivers/net/ethernet/mellanox/mlxsw/core.c @@ -710,7 +710,7 @@ static int mlxsw_emad_init(struct mlxsw_core *mlxsw_core) err = mlxsw_core_trap_register(mlxsw_core, &mlxsw_emad_rx_listener, mlxsw_core); if (err) - return err; + goto err_trap_register; err = mlxsw_core->driver->basic_trap_groups_set(mlxsw_core); if (err) @@ -722,6 +722,7 @@ static int mlxsw_emad_init(struct mlxsw_core *mlxsw_core) err_emad_trap_set: mlxsw_core_trap_unregister(mlxsw_core, &mlxsw_emad_rx_listener, mlxsw_core); +err_trap_register: destroy_workqueue(mlxsw_core->emad_wq); return err; }
When mlxsw_core_trap_register fails in mlxsw_emad_init, destroy_workqueue() shouled be called to destroy mlxsw_core->emad_wq. Fixes: d965465b60ba ("mlxsw: core: Fix possible deadlock") Signed-off-by: Liu Jian <liujian56@huawei.com> --- drivers/net/ethernet/mellanox/mlxsw/core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)