From: Andrew Morton Cc: Kristian Kielhofner Cc: Richard Purdie Signed-off-by: Andrew Morton --- drivers/leds/leds-wrap.c | 11 +++++++++-- 1 files changed, 9 insertions(+), 2 deletions(-) diff -puN drivers/leds/leds-wrap.c~pcengines-wrap-led-support-fix drivers/leds/leds-wrap.c --- a/drivers/leds/leds-wrap.c~pcengines-wrap-led-support-fix +++ a/drivers/leds/leds-wrap.c @@ -74,8 +74,15 @@ static int wrap_led_resume(struct platfo static int wrap_led_probe(struct platform_device *pdev) { - led_classdev_register(&pdev->dev, &wrap_error_led); - return led_classdev_register(&pdev->dev, &wrap_extra_led); + int ret; + + ret = led_classdev_register(&pdev->dev, &wrap_error_led); + if (ret == 0) { + ret = led_classdev_register(&pdev->dev, &wrap_extra_led); + if (ret < 0) + led_classdev_unregister(&wrap_error_led); + } + return ret; } static int wrap_led_remove(struct platform_device *pdev) _