[PATCH] can: flexcan: Fix OF node reference leak in flexcan_setup_stop_mode_gpr()
From: Wentao Liang
Date: Thu Sep 17 2026 - 06:01:16 EST
of_find_node_by_phandle() takes a reference on the GPR node and the
error path releases it through out_put_node. The success path returns
before reaching that label, so the reference is leaked every time the
stop mode is set up successfully, and the node can never be freed.
Release the node reference before returning.
Fixes: 13dfb3fa4943 ("Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Wentao Liang <vulab@xxxxxxxxxxx>
---
drivers/net/can/flexcan/flexcan-core.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/can/flexcan/flexcan-core.c b/drivers/net/can/flexcan/flexcan-core.c
index f5d22c61503f..68699d674fc3 100644
--- a/drivers/net/can/flexcan/flexcan-core.c
+++ b/drivers/net/can/flexcan/flexcan-core.c
@@ -1986,6 +1986,7 @@ static int flexcan_setup_stop_mode_gpr(struct platform_device *pdev)
"gpr %s req_gpr=0x02%x req_bit=%u\n",
gpr_np->full_name, priv->stm.req_gpr, priv->stm.req_bit);
+ of_node_put(gpr_np);
return 0;
out_put_node:
--
2.34.1