i2c: mux: Fix channel node leak on adapter add failure

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: bc45449b14 ("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
This commit is contained in:
Ahmad Byagowi 2026-08-23 09:34:36 -07:00 committed by Andi Shyti
parent 47096fc3d0
commit 385c7af4e3
No known key found for this signature in database
GPG Key ID: DA78056626D32D6E

View 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;
}