mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-22 23:13:01 +02:00
leds: cht-wcove: Use devm_led_classdev_register() to avoid memory leak
cht_wc_leds_probe() leaks memory when the second led_classdev_register()
call in the for-loop fails as it does not call the cleanup function
led_classdev_unregister() on the first device. Avoid this leak by
calling devm_led_classdev_register().
Fixes: 047da762b9
("leds: Add Intel Cherry Trail Whiskey Cove PMIC LED driver")
Signed-off-by: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
Link: https://lore.kernel.org/r/20241220085346.533675-1-joe@pf.is.s.u-tokyo.ac.jp
Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
parent
e14d879292
commit
417cad5dc7
|
@ -394,7 +394,7 @@ static int cht_wc_leds_probe(struct platform_device *pdev)
|
|||
led->cdev.pattern_clear = cht_wc_leds_pattern_clear;
|
||||
led->cdev.max_brightness = 255;
|
||||
|
||||
ret = led_classdev_register(&pdev->dev, &led->cdev);
|
||||
ret = devm_led_classdev_register(&pdev->dev, &led->cdev);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
}
|
||||
|
@ -406,10 +406,6 @@ static int cht_wc_leds_probe(struct platform_device *pdev)
|
|||
static void cht_wc_leds_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct cht_wc_leds *leds = platform_get_drvdata(pdev);
|
||||
int i;
|
||||
|
||||
for (i = 0; i < CHT_WC_LED_COUNT; i++)
|
||||
led_classdev_unregister(&leds->leds[i].cdev);
|
||||
|
||||
/* Restore LED1 regs if hw-control was active else leave LED1 off */
|
||||
if (!(leds->led1_initial_regs.ctrl & CHT_WC_LED1_SWCTL))
|
||||
|
|
Loading…
Reference in New Issue
Block a user