Skip to content

Commit

Permalink
leds: lp50xx: Fix an error handling path in 'lp50xx_probe_dt()'
Browse files Browse the repository at this point in the history
In case of memory allocation failure, we must release some resources as
done in all other error handling paths of the function.

'goto child_out' instead of a direct return so that 'fwnode_handle_put()'
is called when we break out of a 'device_for_each_child_node' loop.

Fixes: 242b811 ("leds: lp50xx: Add the LP50XX family of the RGB LED driver")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: Dan Murphy <dmurphy@ti.com>
Signed-off-by: Pavel Machek <pavel@ucw.cz>
  • Loading branch information
Christophe JAILLET authored and Pavel Machek committed Nov 25, 2020
1 parent 311066a commit 6d8d014
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions drivers/leds/leds-lp50xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -487,8 +487,10 @@ static int lp50xx_probe_dt(struct lp50xx *priv)
*/
mc_led_info = devm_kcalloc(priv->dev, LP50XX_LEDS_PER_MODULE,
sizeof(*mc_led_info), GFP_KERNEL);
if (!mc_led_info)
return -ENOMEM;
if (!mc_led_info) {
ret = -ENOMEM;
goto child_out;
}

fwnode_for_each_child_node(child, led_node) {
ret = fwnode_property_read_u32(led_node, "color",
Expand Down

0 comments on commit 6d8d014

Please sign in to comment.