mirror-linux/net/devlink
Mark Bloch 3522b21fd7 devlink: Release nested relation on devlink free
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: c137743bce ("devlink: introduce object and nested devlink relationship infra")
Signed-off-by: Mark Bloch <mbloch@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Link: https://patch.msgid.link/20260528191411.3270532-1-mbloch@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-01 19:54:52 -07:00
..
Makefile devlink: introduce shared devlink instance for PFs on same chip 2026-03-14 13:08:50 -07:00
core.c devlink: Release nested relation on devlink free 2026-06-01 19:54:52 -07:00
dev.c devlink: allow devlink instance allocation without a backing device 2026-03-14 13:08:49 -07:00
devl_internal.h devlink: Include port resources in resource dump dumpit 2026-04-08 19:55:38 -07:00
dpipe.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
health.c devlink: Fix incorrect skb socket family dumping 2026-04-08 19:34:38 -07:00
linecard.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
netlink.c devlink: Include port resources in resource dump dumpit 2026-04-08 19:55:38 -07:00
netlink_gen.c devlink: Add resource scope filtering to resource dump 2026-04-08 19:55:39 -07:00
netlink_gen.h devlink: Add port-specific option to resource dump doit 2026-04-08 19:55:39 -07:00
param.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
port.c devlink: Add port-level resource registration infrastructure 2026-04-08 19:55:38 -07:00
rate.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
region.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
resource.c devlink: Add resource scope filtering to resource dump 2026-04-08 19:55:39 -07:00
sb.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
sh_dev.c devlink: introduce shared devlink instance for PFs on same chip 2026-03-14 13:08:50 -07:00
trap.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00