[PATCH] fsi: i2cr: Fix of_node reference leak in i2cr_probe()
From: Wentao Liang
Date: Wed Sep 16 2026 - 05:38:53 EST
In i2cr_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, i2cr_release() never runs and the reference is leaked.
Put the device node reference before returning on the error path.
Fixes: 53e89e3e4490 ("fsi: Add IBM I2C Responder virtual FSI master")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Wentao Liang <vulab@xxxxxxxxxxx>
---
drivers/fsi/fsi-master-i2cr.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/fsi/fsi-master-i2cr.c b/drivers/fsi/fsi-master-i2cr.c
index d36a4328ad73..31c9b3b70d92 100644
--- a/drivers/fsi/fsi-master-i2cr.c
+++ b/drivers/fsi/fsi-master-i2cr.c
@@ -280,8 +280,10 @@ static int i2cr_probe(struct i2c_client *client)
i2cr->client = client;
ret = fsi_master_register(&i2cr->master);
- if (ret)
+ if (ret) {
+ of_node_put(i2cr->master.dev.of_node);
return ret;
+ }
i2c_set_clientdata(client, i2cr);
return 0;
--
2.34.1