]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
i2c: muxes: mule: Fix an error handling path in mule_i2c_mux_probe()
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Wed, 30 Jul 2025 19:38:02 +0000 (21:38 +0200)
committerWolfram Sang <wsa+renesas@sang-engineering.com>
Sun, 3 Aug 2025 20:47:57 +0000 (22:47 +0200)
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: d0f8e97866bf ("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>
drivers/i2c/muxes/i2c-mux-mule.c

index 284ff4afeeacab074a34706e8cc4f6eccd683fed..d3b32b794172ad5f57261805a98afb590783c18b 100644 (file)
@@ -47,7 +47,6 @@ static int mule_i2c_mux_probe(struct platform_device *pdev)
        struct mule_i2c_reg_mux *priv;
        struct i2c_client *client;
        struct i2c_mux_core *muxc;
-       struct device_node *dev;
        unsigned int readback;
        int ndev, ret;
        bool old_fw;
@@ -95,7 +94,7 @@ static int mule_i2c_mux_probe(struct platform_device *pdev)
                                     "Failed to register mux remove\n");
 
        /* 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;
 
                ret = of_property_read_u32(dev, "reg", &reg);