提交 0de7804e 编写于 作者: I Ido Schimmel 提交者: Xie XiuQi

mlxsw: core: Do not use WQ_MEM_RECLAIM for EMAD workqueue

[ Upstream commit a8c133b06183c529c51cd0d54eb57d6b7078370c ]

The EMAD workqueue is used to handle retransmission of EMAD packets that
contain configuration data for the device's firmware.

Given the workers need to allocate these packets and that the code is
not called as part of memory reclaim path, remove the WQ_MEM_RECLAIM
flag.

Fixes: d965465b ("mlxsw: core: Fix possible deadlock")
Signed-off-by: NIdo Schimmel <idosch@mellanox.com>
Acked-by: NJiri Pirko <jiri@mellanox.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
Signed-off-by: NSasha Levin <alexander.levin@microsoft.com>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 21c2b75d
...@@ -568,7 +568,7 @@ static int mlxsw_emad_init(struct mlxsw_core *mlxsw_core) ...@@ -568,7 +568,7 @@ static int mlxsw_emad_init(struct mlxsw_core *mlxsw_core)
if (!(mlxsw_core->bus->features & MLXSW_BUS_F_TXRX)) if (!(mlxsw_core->bus->features & MLXSW_BUS_F_TXRX))
return 0; return 0;
emad_wq = alloc_workqueue("mlxsw_core_emad", WQ_MEM_RECLAIM, 0); emad_wq = alloc_workqueue("mlxsw_core_emad", 0, 0);
if (!emad_wq) if (!emad_wq)
return -ENOMEM; return -ENOMEM;
mlxsw_core->emad_wq = emad_wq; mlxsw_core->emad_wq = emad_wq;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册