Input: cap11xx - add missing of_node_put
for_each_child_of_node performs an of_node_get on each iteration, so to break out of the loop an of_node_put is required. Found using Coccinelle. Signed-off-by: Amitoj Kaur Chawla <amitoj1606@gmail.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
af6e94634d
commit
497e1b3f6b
|
@ -304,8 +304,10 @@ static int cap11xx_init_leds(struct device *dev,
|
|||
led->cdev.brightness = LED_OFF;
|
||||
|
||||
error = of_property_read_u32(child, "reg", ®);
|
||||
if (error != 0 || reg >= num_leds)
|
||||
if (error != 0 || reg >= num_leds) {
|
||||
of_node_put(child);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
led->reg = reg;
|
||||
led->priv = priv;
|
||||
|
@ -313,8 +315,10 @@ static int cap11xx_init_leds(struct device *dev,
|
|||
INIT_WORK(&led->work, cap11xx_led_work);
|
||||
|
||||
error = devm_led_classdev_register(dev, &led->cdev);
|
||||
if (error)
|
||||
if (error) {
|
||||
of_node_put(child);
|
||||
return error;
|
||||
}
|
||||
|
||||
priv->num_leds++;
|
||||
led++;
|
||||
|
|
Loading…
Reference in New Issue