[PATCH 00/21] leds: Assorted bug fixes across core, flash, trigger, and drivers

From: Lee Jones

Date: Wed Oct 21 2026 - 08:46:45 EST


These issues were reported by Sashiko.

This series addresses a collection of bugs across the LEDs subsystem,
including locking and concurrency fixes, device-tree node reference
leaks, out-of-bounds array accesses, divide-by-zero and current-limit
clamping issues, and devres lifecycle ordering fixes.

Cc: Andrew Lunn <andrew@xxxxxxx>
Cc: Ben Whitten <ben.whitten@xxxxxxxxx>
Cc: Bryan Wu <cooloney@xxxxxxxxx>
Cc: Christian Hitz <christian.hitz@xxxxxx>
Cc: Christian Marangi <ansuelsmth@xxxxxxxxx>
Cc: Daniel Mack <daniel@xxxxxxxxxx>
Cc: Dan Murphy <dmurphy@xxxxxx>
Cc: David Rivshin <drivshin@xxxxxxxxxxx>
Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
Cc: Dmitry Antipov <dmantipov@xxxxxxxxx>
Cc: Eddie James <eajames@xxxxxxxxxxxxx>
Cc: Florian Fainelli <ffainelli@xxxxxxxxxx>
Cc: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
Cc: John Lenz <lenz@xxxxxxxxxxx>
Cc: Krzysztof Kozlowski <krzk@xxxxxxxxxx>
Cc: Kyungmin Park <kyungmin.park@xxxxxxxxxxx>
Cc: linux-leds@xxxxxxxxxxxxxxx
Cc: Luca Weiss <luca@xxxxxxxxxxxx>
Cc: Luis Henriques <lhenriques@xxxxxxxx>
Cc: Nate Case <ncase@xxxxxxxxxxx>
Cc: Nikita Travkin <nikitos.tr@xxxxxxxxx>
Cc: Oliver Jowett <oliver@xxxxxxxxxxxxx>
Cc: Pavel Machek <pavel@xxxxxxxxxx>
Cc: Richard Purdie <rpurdie@xxxxxxxxxxxxxx>

Lee Jones (21):
leds: lm3532: Propagate error from devm_regulator_get()
leds: lm3532: Use dev_err_probe() when lm3532_parse_node() fails
leds: trigger: netdev: Hold RTNL lock across hw_control_get_device()
in activate
leds: aw2013: Guard LED array index in aw2013_probe_dt()
leds: pca955x: Take a reference on the child firmware node
leds: lp50xx: Guard sub-LED count in lp50xx_probe_dt()
leds: trigger: netdev: Serialise work cancellation and state updates
leds: sgm3140: Replace powerdown timer with delayed work
leds: sgm3140: Cancel powerdown work via devres after LED
unregistration
leds: class: Initialise trigger_lock before exposing sysfs attributes
leds: class: Unlock led_access before unregistering device on error
leds: aat1290: Retain child device_node reference for device lifetime
leds: aat1290: Prevent out-of-bounds read in
aat1290_brightness_to_intensity()
leds: flash: Avoid divide-by-zero in led_clamp_align()
leds: lm3532: Validate LED string indices in lm3532_parse_node()
leds: lm3532: Clamp full-scale current to minimum bound
leds: aat1290: Avoid leaking devres pinctrl handles on strobe source
changes
leds: aw2013: Unlock chip mutex before registering LEDs
leds: is31fl32xx: Clamp channel current limit in is31fl3293_reset()
leds: flash: Terminate sysfs_groups array with NULL
leds: lm3692x: Use devm_mutex_init() to avoid premature mutex
destruction

drivers/leds/flash/leds-aat1290.c | 18 +++++++--
drivers/leds/flash/leds-sgm3140.c | 30 ++++++++------
drivers/leds/led-class-flash.c | 7 ++++
drivers/leds/led-class.c | 9 +++--
drivers/leds/leds-aw2013.c | 57 ++++++++++++++++-----------
drivers/leds/leds-is31fl32xx.c | 3 +-
drivers/leds/leds-lm3532.c | 33 +++++++++-------
drivers/leds/leds-lm3692x.c | 6 ++-
drivers/leds/leds-lp50xx.c | 8 ++++
drivers/leds/leds-pca955x.c | 19 +++++++--
drivers/leds/trigger/ledtrig-netdev.c | 43 ++++++++++++++------
11 files changed, 158 insertions(+), 75 deletions(-)

--
2.56.0.218.g1ec904b173-goog