From: Petr Machata <petrm@nvidia.com>
To: Petr Machata <petrm@nvidia.com>
Cc: "David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
<netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
Vadim Pasternak <vadimp@nvidia.com>,
"Ido Schimmel" <idosch@nvidia.com>, Jiri Pirko <jiri@nvidia.com>
Subject: Re: [PATCH net] mlxsw: minimal: Fix deadlock in ports creation
Date: Thu, 11 Aug 2022 13:44:17 +0200 [thread overview]
Message-ID: <87wnbf57bw.fsf@nvidia.com> (raw)
In-Reply-To: <f4afce5ab0318617f3866b85274be52542d59b32.1660211614.git.petrm@nvidia.com>
CC'ing Jiri, which I forgot to do.
Petr Machata <petrm@nvidia.com> writes:
> From: Vadim Pasternak <vadimp@nvidia.com>
>
> Drop devl_lock() / devl_unlock() from ports creation and removal flows
> since the devlink instance lock is now taken by mlxsw_core.
>
> Fixes: 72a4c8c94efa ("mlxsw: convert driver to use unlocked devlink API during init/fini")
> Signed-off-by: Vadim Pasternak <vadimp@nvidia.com>
> Signed-off-by: Ido Schimmel <idosch@nvidia.com>
> Signed-off-by: Petr Machata <petrm@nvidia.com>
> ---
> drivers/net/ethernet/mellanox/mlxsw/minimal.c | 7 -------
> 1 file changed, 7 deletions(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlxsw/minimal.c b/drivers/net/ethernet/mellanox/mlxsw/minimal.c
> index d9bf584234a6..bb1cd4bae82e 100644
> --- a/drivers/net/ethernet/mellanox/mlxsw/minimal.c
> +++ b/drivers/net/ethernet/mellanox/mlxsw/minimal.c
> @@ -328,7 +328,6 @@ static void mlxsw_m_port_module_unmap(struct mlxsw_m *mlxsw_m, u8 module)
> static int mlxsw_m_ports_create(struct mlxsw_m *mlxsw_m)
> {
> unsigned int max_ports = mlxsw_core_max_ports(mlxsw_m->core);
> - struct devlink *devlink = priv_to_devlink(mlxsw_m->core);
> u8 last_module = max_ports;
> int i;
> int err;
> @@ -357,7 +356,6 @@ static int mlxsw_m_ports_create(struct mlxsw_m *mlxsw_m)
> }
>
> /* Create port objects for each valid entry */
> - devl_lock(devlink);
> for (i = 0; i < mlxsw_m->max_ports; i++) {
> if (mlxsw_m->module_to_port[i] > 0) {
> err = mlxsw_m_port_create(mlxsw_m,
> @@ -367,7 +365,6 @@ static int mlxsw_m_ports_create(struct mlxsw_m *mlxsw_m)
> goto err_module_to_port_create;
> }
> }
> - devl_unlock(devlink);
>
> return 0;
>
> @@ -377,7 +374,6 @@ static int mlxsw_m_ports_create(struct mlxsw_m *mlxsw_m)
> mlxsw_m_port_remove(mlxsw_m,
> mlxsw_m->module_to_port[i]);
> }
> - devl_unlock(devlink);
> i = max_ports;
> err_module_to_port_map:
> for (i--; i > 0; i--)
> @@ -390,10 +386,8 @@ static int mlxsw_m_ports_create(struct mlxsw_m *mlxsw_m)
>
> static void mlxsw_m_ports_remove(struct mlxsw_m *mlxsw_m)
> {
> - struct devlink *devlink = priv_to_devlink(mlxsw_m->core);
> int i;
>
> - devl_lock(devlink);
> for (i = 0; i < mlxsw_m->max_ports; i++) {
> if (mlxsw_m->module_to_port[i] > 0) {
> mlxsw_m_port_remove(mlxsw_m,
> @@ -401,7 +395,6 @@ static void mlxsw_m_ports_remove(struct mlxsw_m *mlxsw_m)
> mlxsw_m_port_module_unmap(mlxsw_m, i);
> }
> }
> - devl_unlock(devlink);
>
> kfree(mlxsw_m->module_to_port);
> kfree(mlxsw_m->ports);
next prev parent reply other threads:[~2022-08-11 11:49 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-11 9:57 [PATCH net] mlxsw: minimal: Fix deadlock in ports creation Petr Machata
2022-08-11 11:44 ` Petr Machata [this message]
2022-08-11 11:59 ` Jiri Pirko
2022-08-11 16:10 ` patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87wnbf57bw.fsf@nvidia.com \
--to=petrm@nvidia.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=idosch@nvidia.com \
--cc=jiri@nvidia.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=vadimp@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.