2024-02-20 15:35:53

by Daniel Thompson

[permalink] [raw]
Subject: [PATCH RESEND 0/4] Ensure all backlight drivers zero the properties structure

[Sorry for the RESEND so soon... embarrassingly I got Lee's e-mail
address wrong the first time!]

Luca Weiss recently shared a patch to zero the properties structure for
lm3630a... and shortly afterwards I realized I should probably scan for
a similar class of errors in other drivers.

Results follow in the next four patches (they could all be one patch but
for the fact there are different Fixes: tags)!

Daniel Thompson (4):
backlight: da9052: Fully initialize backlight_properties during probe
backlight: lm3639: Fully initialize backlight_properties during probe
backlight: lp8788: Fully initialize backlight_properties during probe
backlight: mp3309c: Fully initialize backlight_properties during probe

drivers/video/backlight/da9052_bl.c | 1 +
drivers/video/backlight/lm3639_bl.c | 1 +
drivers/video/backlight/lp8788_bl.c | 1 +
drivers/video/backlight/mp3309c.c | 1 +
4 files changed, 4 insertions(+)


base-commit: b401b621758e46812da61fa58a67c3fd8d91de0d
--
2.43.0



2024-02-20 15:36:05

by Daniel Thompson

[permalink] [raw]
Subject: [PATCH RESEND 1/4] backlight: da9052: Fully initialize backlight_properties during probe

props is stack allocated and the fields that are not explcitly set
by the probe function need to be zeroed or we'll get undefined behaviour
(especially so power/blank states)!

Fixes: 6ede3d832aaa ("backlight: add driver for DA9052/53 PMIC v1")
Signed-off-by: Daniel Thompson <[email protected]>
---
drivers/video/backlight/da9052_bl.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/video/backlight/da9052_bl.c b/drivers/video/backlight/da9052_bl.c
index 1cdc8543310b4..b8ff7046510eb 100644
--- a/drivers/video/backlight/da9052_bl.c
+++ b/drivers/video/backlight/da9052_bl.c
@@ -117,6 +117,7 @@ static int da9052_backlight_probe(struct platform_device *pdev)
wleds->led_reg = platform_get_device_id(pdev)->driver_data;
wleds->state = DA9052_WLEDS_OFF;

+ memset(&props, 0, sizeof(struct backlight_properties));
props.type = BACKLIGHT_RAW;
props.max_brightness = DA9052_MAX_BRIGHTNESS;

--
2.43.0


2024-02-20 15:36:17

by Daniel Thompson

[permalink] [raw]
Subject: [PATCH RESEND 2/4] backlight: lm3639: Fully initialize backlight_properties during probe

props is stack allocated and the fields that are not explcitly set
by the probe function need to be zeroed or we'll get undefined behaviour
(especially so power/blank states)!

Fixes: 0f59858d5119 ("backlight: add new lm3639 backlight driver")
Signed-off-by: Daniel Thompson <[email protected]>
---
drivers/video/backlight/lm3639_bl.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/video/backlight/lm3639_bl.c b/drivers/video/backlight/lm3639_bl.c
index 5246c171497d6..564f62acd7211 100644
--- a/drivers/video/backlight/lm3639_bl.c
+++ b/drivers/video/backlight/lm3639_bl.c
@@ -338,6 +338,7 @@ static int lm3639_probe(struct i2c_client *client)
}

/* backlight */
+ memset(&props, 0, sizeof(struct backlight_properties));
props.type = BACKLIGHT_RAW;
props.brightness = pdata->init_brt_led;
props.max_brightness = pdata->max_brt_led;
--
2.43.0


2024-02-20 15:36:25

by Daniel Thompson

[permalink] [raw]
Subject: [PATCH RESEND 3/4] backlight: lp8788: Fully initialize backlight_properties during probe

props is stack allocated and the fields that are not explcitly set
by the probe function need to be zeroed or we'll get undefined behaviour
(especially so power/blank states)!

Fixes: c5a51053cf3b ("backlight: add new lp8788 backlight driver")
Signed-off-by: Daniel Thompson <[email protected]>
---
drivers/video/backlight/lp8788_bl.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/video/backlight/lp8788_bl.c b/drivers/video/backlight/lp8788_bl.c
index d1a14b0db265b..31f97230ee506 100644
--- a/drivers/video/backlight/lp8788_bl.c
+++ b/drivers/video/backlight/lp8788_bl.c
@@ -191,6 +191,7 @@ static int lp8788_backlight_register(struct lp8788_bl *bl)
int init_brt;
char *name;

+ memset(&props, 0, sizeof(struct backlight_properties));
props.type = BACKLIGHT_PLATFORM;
props.max_brightness = MAX_BRIGHTNESS;

--
2.43.0


2024-02-20 15:36:51

by Daniel Thompson

[permalink] [raw]
Subject: [PATCH RESEND 4/4] backlight: mp3309c: Fully initialize backlight_properties during probe

props is stack allocated and, although this driver initializes all the
fields that are not "owned" by the framework, we'd still like to ensure
it is zeroed to avoid problems from this driver if the fields change.

Signed-off-by: Daniel Thompson <[email protected]>
---
drivers/video/backlight/mp3309c.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/video/backlight/mp3309c.c b/drivers/video/backlight/mp3309c.c
index 34d71259fac1d..cdf302d6f1cb5 100644
--- a/drivers/video/backlight/mp3309c.c
+++ b/drivers/video/backlight/mp3309c.c
@@ -373,6 +373,7 @@ static int mp3309c_probe(struct i2c_client *client)
chip->pdata = pdata;

/* Backlight properties */
+ memset(&props, 0, sizeof(struct backlight_properties));
props.brightness = pdata->default_brightness;
props.max_brightness = pdata->max_brightness;
props.scale = BACKLIGHT_SCALE_LINEAR;
--
2.43.0


2024-02-20 21:36:39

by Luca Weiss

[permalink] [raw]
Subject: Re: [PATCH RESEND 0/4] Ensure all backlight drivers zero the properties structure

On Dienstag, 20. Februar 2024 16:35:23 CET Daniel Thompson wrote:
> [Sorry for the RESEND so soon... embarrassingly I got Lee's e-mail
> address wrong the first time!]
>
> Luca Weiss recently shared a patch to zero the properties structure for
> lm3630a... and shortly afterwards I realized I should probably scan for
> a similar class of errors in other drivers.

Thanks for fixing the other drivers! Was definitely a fun one to debug :)

>
> Results follow in the next four patches (they could all be one patch but
> for the fact there are different Fixes: tags)!
>
> Daniel Thompson (4):
> backlight: da9052: Fully initialize backlight_properties during probe
> backlight: lm3639: Fully initialize backlight_properties during probe
> backlight: lp8788: Fully initialize backlight_properties during probe
> backlight: mp3309c: Fully initialize backlight_properties during probe
>
> drivers/video/backlight/da9052_bl.c | 1 +
> drivers/video/backlight/lm3639_bl.c | 1 +
> drivers/video/backlight/lp8788_bl.c | 1 +
> drivers/video/backlight/mp3309c.c | 1 +
> 4 files changed, 4 insertions(+)
>
>
> base-commit: b401b621758e46812da61fa58a67c3fd8d91de0d
> --
> 2.43.0
>
>





2024-02-23 16:29:02

by Lee Jones

[permalink] [raw]
Subject: Re: (subset) [PATCH RESEND 4/4] backlight: mp3309c: Fully initialize backlight_properties during probe

On Tue, 20 Feb 2024 15:35:27 +0000, Daniel Thompson wrote:
> props is stack allocated and, although this driver initializes all the
> fields that are not "owned" by the framework, we'd still like to ensure
> it is zeroed to avoid problems from this driver if the fields change.
>
>

Applied, thanks!

[4/4] backlight: mp3309c: Fully initialize backlight_properties during probe
commit: 50a2c0aee92699ed47076636b652f9d27a20fbef

--
Lee Jones [李琼斯]


2024-02-23 16:59:40

by Lee Jones

[permalink] [raw]
Subject: Re: [PATCH RESEND 0/4] Ensure all backlight drivers zero the properties structure

On Tue, 20 Feb 2024, Daniel Thompson wrote:

> [Sorry for the RESEND so soon... embarrassingly I got Lee's e-mail
> address wrong the first time!]
>
> Luca Weiss recently shared a patch to zero the properties structure for
> lm3630a... and shortly afterwards I realized I should probably scan for
^

> a similar class of errors in other drivers.
>
> Results follow in the next four patches (they could all be one patch but
> for the fact there are different Fixes: tags)!
>
> Daniel Thompson (4):
> backlight: da9052: Fully initialize backlight_properties during probe
^
> backlight: lm3639: Fully initialize backlight_properties during probe
^
> backlight: lp8788: Fully initialize backlight_properties during probe
^
> backlight: mp3309c: Fully initialize backlight_properties during probe
^

I think you may have the wrong locale set mate! :)

> drivers/video/backlight/da9052_bl.c | 1 +
> drivers/video/backlight/lm3639_bl.c | 1 +
> drivers/video/backlight/lp8788_bl.c | 1 +
> drivers/video/backlight/mp3309c.c | 1 +
> 4 files changed, 4 insertions(+)
>
>
> base-commit: b401b621758e46812da61fa58a67c3fd8d91de0d
> --
> 2.43.0
>

--
Lee Jones [李琼斯]

2024-02-29 17:40:02

by Lee Jones

[permalink] [raw]
Subject: Re: (subset) [PATCH RESEND 0/4] Ensure all backlight drivers zero the properties structure

On Tue, 20 Feb 2024 15:35:23 +0000, Daniel Thompson wrote:
> [Sorry for the RESEND so soon... embarrassingly I got Lee's e-mail
> address wrong the first time!]
>
> Luca Weiss recently shared a patch to zero the properties structure for
> lm3630a... and shortly afterwards I realized I should probably scan for
> a similar class of errors in other drivers.
>
> [...]

Applied, thanks!

[1/4] backlight: da9052: Fully initialize backlight_properties during probe
commit: fc159b40e7980e7f78dbaa72dcc4e8f523dbfd92
[2/4] backlight: lm3639: Fully initialize backlight_properties during probe
commit: aeb7ab878e90041776eae839faa117570dbcce93
[3/4] backlight: lp8788: Fully initialize backlight_properties during probe
commit: cd1995b6ac7384149ad755b74e3c3eb25195ab81

--
Lee Jones [李琼斯]