2014-12-23 18:59:48

by Gabriele Mazzotta

[permalink] [raw]
Subject: [PATCH] leds: Don't allow brightness values greater than max_brightness

Since commit 4d71a4a12b13 ("leds: Add support for setting brightness in
a synchronous way") the value passed to brightness_set() is no longer
limited to max_brightness and can be different from the internally saved
brightness value.

Signed-off-by: Gabriele Mazzotta <[email protected]>
---
drivers/leds/leds.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/leds/leds.h b/drivers/leds/leds.h
index 2348dbd..79efe57 100644
--- a/drivers/leds/leds.h
+++ b/drivers/leds/leds.h
@@ -20,7 +20,8 @@
static inline void led_set_brightness_async(struct led_classdev *led_cdev,
enum led_brightness value)
{
- led_cdev->brightness = min(value, led_cdev->max_brightness);
+ value = min(value, led_cdev->max_brightness);
+ led_cdev->brightness = value;

if (!(led_cdev->flags & LED_SUSPENDED))
led_cdev->brightness_set(led_cdev, value);
--
2.1.4


2014-12-23 19:03:09

by Bryan Wu

[permalink] [raw]
Subject: Re: [PATCH] leds: Don't allow brightness values greater than max_brightness

On Tue, Dec 23, 2014 at 10:59 AM, Gabriele Mazzotta
<[email protected]> wrote:
> Since commit 4d71a4a12b13 ("leds: Add support for setting brightness in
> a synchronous way") the value passed to brightness_set() is no longer
> limited to max_brightness and can be different from the internally saved
> brightness value.
>
Good catch, I will merge this soon.

Thanks,
-Bryan

> Signed-off-by: Gabriele Mazzotta <[email protected]>
> ---
> drivers/leds/leds.h | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/leds/leds.h b/drivers/leds/leds.h
> index 2348dbd..79efe57 100644
> --- a/drivers/leds/leds.h
> +++ b/drivers/leds/leds.h
> @@ -20,7 +20,8 @@
> static inline void led_set_brightness_async(struct led_classdev *led_cdev,
> enum led_brightness value)
> {
> - led_cdev->brightness = min(value, led_cdev->max_brightness);
> + value = min(value, led_cdev->max_brightness);
> + led_cdev->brightness = value;
>
> if (!(led_cdev->flags & LED_SUSPENDED))
> led_cdev->brightness_set(led_cdev, value);
> --
> 2.1.4
>