i2c: muxes: mule: Fix an error handling path in mule_i2c_mux_probe()

If an error occurs in the loop that creates the device adapters, then a
reference to 'dev' still needs to be released.

Use for_each_child_of_node_scoped() to both fix the issue and save one line
of code.

Fixes: d0f8e97866 ("i2c: muxes: add support for tsd,mule-i2c multiplexer")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
pull/1314/head
Christophe JAILLET 2025-07-30 21:38:02 +02:00 committed by Wolfram Sang
parent 0b7c9528fa
commit 33ac515589
1 changed files with 1 additions and 2 deletions

View File

@ -47,7 +47,6 @@ static int mule_i2c_mux_probe(struct platform_device *pdev)
struct mule_i2c_reg_mux *priv; struct mule_i2c_reg_mux *priv;
struct i2c_client *client; struct i2c_client *client;
struct i2c_mux_core *muxc; struct i2c_mux_core *muxc;
struct device_node *dev;
unsigned int readback; unsigned int readback;
int ndev, ret; int ndev, ret;
bool old_fw; bool old_fw;
@ -95,7 +94,7 @@ static int mule_i2c_mux_probe(struct platform_device *pdev)
"Failed to register mux remove\n"); "Failed to register mux remove\n");
/* Create device adapters */ /* Create device adapters */
for_each_child_of_node(mux_dev->of_node, dev) { for_each_child_of_node_scoped(mux_dev->of_node, dev) {
u32 reg; u32 reg;
ret = of_property_read_u32(dev, "reg", &reg); ret = of_property_read_u32(dev, "reg", &reg);