[PATCH] fsi: master-hub: Fix of_node reference leak in hub_master_probe()
From: Wentao Liang
Date: Wed Sep 16 2026 - 05:51:35 EST
In hub_master_probe(), a reference to the device tree node is taken
with of_node_get() and stored in master.dev.of_node. If
fsi_master_register() fails, the error path releases the link range
without putting that reference, leaking it.
Put the device node reference before returning on the error path, so
that the kzalloc() failure path, which runs before the node reference
is taken, is unaffected.
Fixes: f6a2f8eb73f0 ("fsi: Match fsi slaves and engines to available dt nodes")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Wentao Liang <vulab@xxxxxxxxxxx>
---
drivers/fsi/fsi-master-hub.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/fsi/fsi-master-hub.c b/drivers/fsi/fsi-master-hub.c
index e5ac9025762e..9507caa78358 100644
--- a/drivers/fsi/fsi-master-hub.c
+++ b/drivers/fsi/fsi-master-hub.c
@@ -240,8 +240,10 @@ static int hub_master_probe(struct fsi_device *fsi_dev)
hub_master_init(hub);
rc = fsi_master_register(&hub->master);
- if (rc)
+ if (rc) {
+ of_node_put(hub->master.dev.of_node);
goto err_release;
+ }
/* At this point, fsi_master_register performs the device_initialize(),
* and holds the sole reference on master.dev. This means the device
--
2.34.1