diff options
| author | Guenter Roeck <linux@roeck-us.net> | 2026-06-29 16:08:00 -0700 |
|---|---|---|
| committer | Guenter Roeck <linux@roeck-us.net> | 2026-06-29 16:25:27 -0700 |
| commit | 9ef7dacd44216bf5ea05c8aef49eba4d145f4047 (patch) | |
| tree | 1cdedcc0df833dff563ca7d8c8c905ab61c0d429 /rust | |
| parent | 72a69101032d2932ba5bde38494a325cc6b5d614 (diff) | |
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>
Diffstat (limited to 'rust')
0 files changed, 0 insertions, 0 deletions
