diff options
| author | Gui-Dong Han <hanguidong02@gmail.com> | 2025-12-03 02:01:05 +0800 |
|---|---|---|
| committer | Guenter Roeck <linux@roeck-us.net> | 2025-12-07 14:10:18 -0800 |
| commit | 670d7ef945d3a84683594429aea6ab2cdfa5ceb4 (patch) | |
| tree | 6bbe82dc9f4f7209efe65ede4a294471b37a1b0d /drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | |
| parent | 67a454e6b1c604555c04501c77b7fedc5d98a779 (diff) | |
hwmon: (w83791d) Convert macros to functions to avoid TOCTOU
The macro FAN_FROM_REG evaluates its arguments multiple times. When used
in lockless contexts involving shared driver data, this leads to
Time-of-Check to Time-of-Use (TOCTOU) race conditions, potentially
causing divide-by-zero errors.
Convert the macro to a static function. This guarantees that arguments
are evaluated only once (pass-by-value), preventing the race
conditions.
Additionally, in store_fan_div, move the calculation of the minimum
limit inside the update lock. This ensures that the read-modify-write
sequence operates on consistent data.
Adhere to the principle of minimal changes by only converting macros
that evaluate arguments multiple times and are used in lockless
contexts.
Link: https://lore.kernel.org/all/CALbr=LYJ_ehtp53HXEVkSpYoub+XYSTU8Rg=o1xxMJ8=5z8B-g@mail.gmail.com/
Fixes: 9873964d6eb2 ("[PATCH] HWMON: w83791d: New hardware monitoring driver for the Winbond W83791D")
Cc: stable@vger.kernel.org
Signed-off-by: Gui-Dong Han <hanguidong02@gmail.com>
Link: https://lore.kernel.org/r/20251202180105.12842-1-hanguidong02@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c')
0 files changed, 0 insertions, 0 deletions
