* [PATCH net] devlink: Release nested relation on devlink free
@ 2026-05-28 19:14 Mark Bloch
2026-05-29 9:50 ` Jiri Pirko
2026-06-02 3:00 ` patchwork-bot+netdevbpf
0 siblings, 2 replies; 3+ messages in thread
From: Mark Bloch @ 2026-05-28 19:14 UTC (permalink / raw)
To: Jiri Pirko, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Andrew Lunn, David S. Miller
Cc: Tariq Toukan, Leon Romanovsky, Saeed Mahameed, netdev,
linux-rdma, linux-kernel, Gal Pressman, Jiri Pirko, Mark Bloch
devlink relation state is normally released from devl_unregister(), which
calls devlink_rel_put(). This misses devlink instances that get a nested
relation before registration and then fail probe before devl_register() is
reached.
That flow can happen for SFs. The child devlink gets linked to its
parent before registration, then a later probe error calls devlink_free()
directly. Since the instance was never registered, devl_unregister() is not
called and devlink->rel is leaked.
Release any pending relation from devlink_free() as well. The registered
path is unchanged because devl_unregister() already clears devlink->rel
before devlink_free() runs.
Fixes: c137743bce02 ("devlink: introduce object and nested devlink relationship infra")
Signed-off-by: Mark Bloch <mbloch@nvidia.com>
---
net/devlink/core.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/net/devlink/core.c b/net/devlink/core.c
index eeb6a71f5f56..fe9f6a0a67d5 100644
--- a/net/devlink/core.c
+++ b/net/devlink/core.c
@@ -518,6 +518,8 @@ void devlink_free(struct devlink *devlink)
{
ASSERT_DEVLINK_NOT_REGISTERED(devlink);
+ devlink_rel_put(devlink);
+
WARN_ON(!list_empty(&devlink->trap_policer_list));
WARN_ON(!list_empty(&devlink->trap_group_list));
WARN_ON(!list_empty(&devlink->trap_list));
base-commit: 8d26955ea5a4697c1e21a3869ceb36b90389b051
--
2.34.1
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH net] devlink: Release nested relation on devlink free
2026-05-28 19:14 [PATCH net] devlink: Release nested relation on devlink free Mark Bloch
@ 2026-05-29 9:50 ` Jiri Pirko
2026-06-02 3:00 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: Jiri Pirko @ 2026-05-29 9:50 UTC (permalink / raw)
To: Mark Bloch
Cc: Jiri Pirko, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Andrew Lunn, David S. Miller, Tariq Toukan, Leon Romanovsky,
Saeed Mahameed, netdev, linux-rdma, linux-kernel, Gal Pressman
Thu, May 28, 2026 at 09:14:10PM +0200, mbloch@nvidia.com wrote:
>devlink relation state is normally released from devl_unregister(), which
>calls devlink_rel_put(). This misses devlink instances that get a nested
>relation before registration and then fail probe before devl_register() is
>reached.
>
>That flow can happen for SFs. The child devlink gets linked to its
>parent before registration, then a later probe error calls devlink_free()
>directly. Since the instance was never registered, devl_unregister() is not
>called and devlink->rel is leaked.
>
>Release any pending relation from devlink_free() as well. The registered
>path is unchanged because devl_unregister() already clears devlink->rel
>before devlink_free() runs.
>
>Fixes: c137743bce02 ("devlink: introduce object and nested devlink relationship infra")
>Signed-off-by: Mark Bloch <mbloch@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH net] devlink: Release nested relation on devlink free
2026-05-28 19:14 [PATCH net] devlink: Release nested relation on devlink free Mark Bloch
2026-05-29 9:50 ` Jiri Pirko
@ 2026-06-02 3:00 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+netdevbpf @ 2026-06-02 3:00 UTC (permalink / raw)
To: Mark Bloch
Cc: jiri, edumazet, kuba, pabeni, andrew+netdev, davem, tariqt, leon,
saeedm, netdev, linux-rdma, linux-kernel, gal, jiri
Hello:
This patch was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Thu, 28 May 2026 22:14:10 +0300 you wrote:
> devlink relation state is normally released from devl_unregister(), which
> calls devlink_rel_put(). This misses devlink instances that get a nested
> relation before registration and then fail probe before devl_register() is
> reached.
>
> That flow can happen for SFs. The child devlink gets linked to its
> parent before registration, then a later probe error calls devlink_free()
> directly. Since the instance was never registered, devl_unregister() is not
> called and devlink->rel is leaked.
>
> [...]
Here is the summary with links:
- [net] devlink: Release nested relation on devlink free
https://git.kernel.org/netdev/net/c/3522b21fd7e1
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-06-02 3:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-05-28 19:14 [PATCH net] devlink: Release nested relation on devlink free Mark Bloch
2026-05-29 9:50 ` Jiri Pirko
2026-06-02 3:00 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome