diff mbox series

[v2,led] leds: trigger: netdev: uninitialized variable in netdev_trig_activate()

Message ID 6fbb3819-a348-4cc3-a1d0-951ca1c380d6@moroto.mountain
State Superseded
Headers show
Series [v2,led] leds: trigger: netdev: uninitialized variable in netdev_trig_activate() | expand

Commit Message

Dan Carpenter June 13, 2023, 6:46 a.m. UTC
The qca8k_cled_hw_control_get() function which implements ->hw_control_get
sets the appropriate bits but does not clear them.  This leads to an
uninitialized variable bug.  Fix this by setting mode to zero at the
start.

Fixes: e0256648c831 ("net: dsa: qca8k: implement hw_control ops")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
---
v2: In the original patch I fixed qca8k_cled_hw_control_get() instead
so that patch went to netdev instead of to the led subsystem.
https://lore.kernel.org/all/5dff3719-f827-45b6-a0d3-a00efed1099b@moroto.mountain/
Fixing it here is a more reliable way to do it.

 drivers/leds/trigger/ledtrig-netdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Andrew Lunn June 14, 2023, 12:51 a.m. UTC | #1
On Tue, Jun 13, 2023 at 09:46:53AM +0300, Dan Carpenter wrote:
> The qca8k_cled_hw_control_get() function which implements ->hw_control_get
> sets the appropriate bits but does not clear them.  This leads to an
> uninitialized variable bug.  Fix this by setting mode to zero at the
> start.
> 
> Fixes: e0256648c831 ("net: dsa: qca8k: implement hw_control ops")
> Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
> ---
> v2: In the original patch I fixed qca8k_cled_hw_control_get() instead
> so that patch went to netdev instead of to the led subsystem.

I think his actually needs to be merged via netdev.  e0256648c831
("net: dsa: qca8k: implement hw_control ops") is in net-next/main.  I
don't see it in leds/master, leds/for-leds-next. Also, git blame shows
mode was added by 0316cc5629d1 ("leds: trigger: netdev: init mode if
hw control already active") which also appears only to be in
net-next/main.

A lot of these LED patches were merged via netdev because they are
cross subsystem.

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew
diff mbox series

Patch

diff --git a/drivers/leds/trigger/ledtrig-netdev.c b/drivers/leds/trigger/ledtrig-netdev.c
index b0a6f2749552..2311dae7f070 100644
--- a/drivers/leds/trigger/ledtrig-netdev.c
+++ b/drivers/leds/trigger/ledtrig-netdev.c
@@ -445,7 +445,7 @@  static void netdev_trig_work(struct work_struct *work)
 static int netdev_trig_activate(struct led_classdev *led_cdev)
 {
 	struct led_netdev_data *trigger_data;
-	unsigned long mode;
+	unsigned long mode = 0;
 	struct device *dev;
 	int rc;