lkml.org 
[lkml]   [2021]   [Sep]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.13 163/300] leds: lgm-sso: Propagate error codes from callee to caller
    Date
    From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

    [ Upstream commit 9cbc861095375793a69858f91f3ac4e817f320f0 ]

    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: 9999908ca1ab ("leds: lgm-sso: Put fwnode in any case during ->probe()")
    Fixes: c3987cd2bca3 ("leds: lgm: Add LED controller driver for LGM SoC")
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/leds/blink/leds-lgm-sso.c | 12 ++++++++----
    1 file changed, 8 insertions(+), 4 deletions(-)

    diff --git a/drivers/leds/blink/leds-lgm-sso.c b/drivers/leds/blink/leds-lgm-sso.c
    index 6c0ffcaa6b5c..24736f29d363 100644
    --- a/drivers/leds/blink/leds-lgm-sso.c
    +++ b/drivers/leds/blink/leds-lgm-sso.c
    @@ -643,7 +643,7 @@ __sso_led_dt_parse(struct sso_led_priv *priv, struct fwnode_handle *fw_ssoled)
    fwnode_child,
    GPIOD_ASIS, NULL);
    if (IS_ERR(led->gpiod)) {
    - dev_err_probe(dev, PTR_ERR(led->gpiod), "led: get gpio fail!\n");
    + ret = dev_err_probe(dev, PTR_ERR(led->gpiod), "led: get gpio fail!\n");
    goto __dt_err;
    }

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

    ret = fwnode_property_read_u32(fwnode_child, "reg", &prop);
    - if (ret != 0 || prop >= SSO_LED_MAX_NUM) {
    + if (ret)
    + goto __dt_err;
    + if (prop >= SSO_LED_MAX_NUM) {
    dev_err(dev, "invalid LED pin:%u\n", prop);
    + ret = -EINVAL;
    goto __dt_err;
    }
    desc->pin = prop;
    @@ -700,7 +703,8 @@ __sso_led_dt_parse(struct sso_led_priv *priv, struct fwnode_handle *fw_ssoled)
    desc->brightness = LED_FULL;
    }

    - if (sso_create_led(priv, led, fwnode_child))
    + ret = sso_create_led(priv, led, fwnode_child);
    + if (ret)
    goto __dt_err;
    }

    @@ -714,7 +718,7 @@ __dt_err:
    sso_led_shutdown(led);
    }

    - return -EINVAL;
    + return ret;
    }

    static int sso_led_dt_parse(struct sso_led_priv *priv)
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-09-13 16:11    [W:4.218 / U:0.292 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site