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
parent
0b7c9528fa
commit
33ac515589
|
|
@ -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", ®);
|
ret = of_property_read_u32(dev, "reg", ®);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue