]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
backlight: sky81452-backlight: Check return value of devm_gpiod_get_optional() in...
authorChen Ni <nichen@iscas.ac.cn>
Tue, 3 Feb 2026 02:16:25 +0000 (10:16 +0800)
committerLee Jones <lee@kernel.org>
Fri, 6 Mar 2026 14:21:07 +0000 (14:21 +0000)
The devm_gpiod_get_optional() function may return an ERR_PTR in case of
genuine GPIO acquisition errors, not just NULL which indicates the
legitimate absence of an optional GPIO.

Add an IS_ERR() check after the call in sky81452_bl_parse_dt(). On
error, return the error code to ensure proper failure handling rather
than proceeding with invalid pointers.

Fixes: e1915eec54a6 ("backlight: sky81452: Convert to GPIO descriptors")
Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Reviewed-by: Daniel Thompson (RISCstar) <danielt@kernel.org>
Link: https://patch.msgid.link/20260203021625.578678-1-nichen@iscas.ac.cn
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/video/backlight/sky81452-backlight.c

index 2749231f0385449b530287cfd7a021c4eeaab288..b2679b24de14bf975857c58f56c19d27a54973ee 100644 (file)
@@ -202,6 +202,9 @@ static struct sky81452_bl_platform_data *sky81452_bl_parse_dt(
        pdata->dpwm_mode = of_property_read_bool(np, "skyworks,dpwm-mode");
        pdata->phase_shift = of_property_read_bool(np, "skyworks,phase-shift");
        pdata->gpiod_enable = devm_gpiod_get_optional(dev, NULL, GPIOD_OUT_HIGH);
+       if (IS_ERR(pdata->gpiod_enable))
+               return dev_err_cast_probe(dev, pdata->gpiod_enable,
+                                         "failed to get gpio\n");
 
        ret = of_property_count_u32_elems(np, "led-sources");
        if (ret < 0) {