]> git.hungrycats.org Git - linux/commitdiff
i2c: mux: Fix channel node leak on adapter add failure
authorAhmad Byagowi <ahmadexp@gmail.com>
Sun, 23 Aug 2026 16:34:36 +0000 (09:34 -0700)
committerAndi Shyti <andi.shyti@kernel.org>
Wed, 26 Aug 2026 13:39:36 +0000 (15:39 +0200)
i2c_mux_add_adapter() takes a reference to the Device Tree channel node
before registering the new adapter. If adapter registration fails, the
error path frees the private data without dropping that reference.

Release the channel node before freeing the private data.

Fixes: bc45449b1444 ("i2c/of: Automatically populate i2c mux busses from device tree data.")
Signed-off-by: Ahmad Byagowi <ahmadexp@gmail.com>
Cc: <stable@vger.kernel.org> # v3.5+
Acked-by: Peter Rosin <peda@lysator.liu.se>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Link: https://patch.msgid.link/b3e46bbee781b3cb4029aca9a71316cc5e36dc17.1787502619.git.ahmadexp@gmail.com
drivers/i2c/i2c-mux.c

index 681a201c239ba0d340b3dc741b6d029407826017..68a4c34b5987d5d28ab6a4a634646de7e956fad5 100644 (file)
@@ -408,6 +408,7 @@ int i2c_mux_add_adapter(struct i2c_mux_core *muxc,
        return 0;
 
 err_free_priv:
+       of_node_put(priv->adap.dev.of_node);
        kfree(priv);
        return ret;
 }