Skip to content

Commit 9cbc861

Browse files
andy-shevpavelmachek
authored andcommitted
leds: lgm-sso: Propagate error codes from callee to caller
The one of the latest change to the driver reveals the problem that the error codes from callee aren't propagated to the caller of __sso_led_dt_parse(). Fix this accordingly. Fixes: 9999908 ("leds: lgm-sso: Put fwnode in any case during ->probe()") Fixes: c3987cd ("leds: lgm: Add LED controller driver for LGM SoC") Reported-by: kernel test robot <[email protected]> Signed-off-by: Andy Shevchenko <[email protected]> Signed-off-by: Pavel Machek <[email protected]>
1 parent 64f67b5 commit 9cbc861

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

drivers/leds/blink/leds-lgm-sso.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -640,7 +640,7 @@ __sso_led_dt_parse(struct sso_led_priv *priv, struct fwnode_handle *fw_ssoled)
640640
fwnode_child,
641641
GPIOD_ASIS, NULL);
642642
if (IS_ERR(led->gpiod)) {
643-
dev_err_probe(dev, PTR_ERR(led->gpiod), "led: get gpio fail!\n");
643+
ret = dev_err_probe(dev, PTR_ERR(led->gpiod), "led: get gpio fail!\n");
644644
goto __dt_err;
645645
}
646646

@@ -660,8 +660,11 @@ __sso_led_dt_parse(struct sso_led_priv *priv, struct fwnode_handle *fw_ssoled)
660660
desc->panic_indicator = 1;
661661

662662
ret = fwnode_property_read_u32(fwnode_child, "reg", &prop);
663-
if (ret != 0 || prop >= SSO_LED_MAX_NUM) {
663+
if (ret)
664+
goto __dt_err;
665+
if (prop >= SSO_LED_MAX_NUM) {
664666
dev_err(dev, "invalid LED pin:%u\n", prop);
667+
ret = -EINVAL;
665668
goto __dt_err;
666669
}
667670
desc->pin = prop;
@@ -697,7 +700,8 @@ __sso_led_dt_parse(struct sso_led_priv *priv, struct fwnode_handle *fw_ssoled)
697700
desc->brightness = LED_FULL;
698701
}
699702

700-
if (sso_create_led(priv, led, fwnode_child))
703+
ret = sso_create_led(priv, led, fwnode_child);
704+
if (ret)
701705
goto __dt_err;
702706
}
703707

@@ -709,7 +713,7 @@ __sso_led_dt_parse(struct sso_led_priv *priv, struct fwnode_handle *fw_ssoled)
709713
list_for_each_entry(led, &priv->led_list, list)
710714
sso_led_shutdown(led);
711715

712-
return -EINVAL;
716+
return ret;
713717
}
714718

715719
static int sso_led_dt_parse(struct sso_led_priv *priv)

0 commit comments

Comments
 (0)