mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 19:29:37 +00:00
leds: lm3692x: Put fwnode in any case during ->probe()
[ Upstream commitf55db1c7fa
] device_get_next_child_node() bumps a reference counting of a returned variable. We have to balance it whenever we return to the caller. Fixes:9a5c1c64ac
("leds: lm3692x: Change DT calls to fwnode calls") Cc: Dan Murphy <dmurphy@ti.com> Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com> Signed-off-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
08ffeb67e4
commit
fde1e59110
1 changed files with 4 additions and 4 deletions
|
@ -358,6 +358,7 @@ static int lm3692x_probe_dt(struct lm3692x_led *led)
|
|||
|
||||
ret = fwnode_property_read_u32(child, "reg", &led->led_enable);
|
||||
if (ret) {
|
||||
fwnode_handle_put(child);
|
||||
dev_err(&led->client->dev, "reg DT property missing\n");
|
||||
return ret;
|
||||
}
|
||||
|
@ -368,12 +369,11 @@ static int lm3692x_probe_dt(struct lm3692x_led *led)
|
|||
|
||||
ret = devm_led_classdev_register_ext(&led->client->dev, &led->led_dev,
|
||||
&init_data);
|
||||
if (ret) {
|
||||
if (ret)
|
||||
dev_err(&led->client->dev, "led register err: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
fwnode_handle_put(init_data.fwnode);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int lm3692x_probe(struct i2c_client *client,
|
||||
|
|
Loading…
Reference in a new issue