]> git.ipfire.org Git - thirdparty/linux.git/commit
hwmon: (pmbus) Fix passing events to regulator core
authorGuenter Roeck <linux@roeck-us.net>
Mon, 29 Jun 2026 23:08:00 +0000 (16:08 -0700)
committerGuenter Roeck <linux@roeck-us.net>
Mon, 29 Jun 2026 23:25:27 +0000 (16:25 -0700)
commit9ef7dacd44216bf5ea05c8aef49eba4d145f4047
tree1cdedcc0df833dff563ca7d8c8c905ab61c0d429
parent72a69101032d2932ba5bde38494a325cc6b5d614
hwmon: (pmbus) Fix passing events to regulator core

Sashiko reports:

Commit 754bd2b4a084 ("hwmon: (pmbus/core) Protect regulator operations with
mutex") introduced a worker to batch regulator events over time using
atomic_or(). The delayed worker then passes the combined bitmask unmodified
to regulator_notifier_call_chain().

The core regulator subsystem's regulator_handle_critical() function
evaluates the event parameter using a strict switch statement. If
multiple distinct faults occur before the worker runs (e.g.,
REGULATOR_EVENT_UNDER_VOLTAGE | REGULATOR_EVENT_OVER_CURRENT), the combined
bitmask fails to match any case. This leaves the reason as NULL and
completely bypasses the critical hw_protection_trigger().

Fix the problem by passing events bit by bit to the regulator event
handler.

Reported-by: Sashiko <sashiko-bot@kernel.org>
Fixes: 754bd2b4a084 ("hwmon: (pmbus/core) Protect regulator operations with mutex")
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/pmbus/pmbus_core.c