Luckily there is no user which checks for returned code and actually returns it, but since the function is exported any user may try to return an error code from it to user space, usually during probe phase, Replace -ENOTSUPP by -EOPNOTSUPP when returning from exported function. Fixes: 13ae79bbe4c2 ("leds: core: Drivers shouldn't enforce SYNC/ASYNC brightness setting") Cc: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx> Signed-off-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx> --- v2: amended the commit message drivers/leds/led-core.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/leds/led-core.c b/drivers/leds/led-core.c index d56ff4939492..f962620a504f 100644 --- a/drivers/leds/led-core.c +++ b/drivers/leds/led-core.c @@ -289,6 +289,8 @@ EXPORT_SYMBOL_GPL(led_set_brightness_nosleep); int led_set_brightness_sync(struct led_classdev *led_cdev, unsigned int value) { + int ret; + if (led_cdev->blink_delay_on || led_cdev->blink_delay_off) return -EBUSY; @@ -297,7 +299,10 @@ int led_set_brightness_sync(struct led_classdev *led_cdev, unsigned int value) if (led_cdev->flags & LED_SUSPENDED) return 0; - return __led_set_brightness_blocking(led_cdev, led_cdev->brightness); + ret = __led_set_brightness_blocking(led_cdev, led_cdev->brightness); + if (ret == -ENOTSUPP) + return -EOPNOTSUPP; + return ret; } EXPORT_SYMBOL_GPL(led_set_brightness_sync); -- 2.31.1