summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/gecko.py
diff options
context:
space:
mode:
authorDavid Lechner <dlechner@baylibre.com>2025-01-15 00:45:52 +0300
committerGuenter Roeck <linux@roeck-us.net>2025-01-15 02:42:16 +0300
commite2c68cea431d65292b592c9f8446c918d45fcf78 (patch)
tree2eda9211a2af2ee93a5b464f1b3ddd3c39f25bfc /tools/perf/scripts/python/gecko.py
parent5bc55a333a2f7316b58edc7573e8e893f7acb532 (diff)
downloadlinux-e2c68cea431d65292b592c9f8446c918d45fcf78.tar.xz
hwmon: (tmp513) Fix division of negative numbers
Fix several issues with division of negative numbers in the tmp513 driver. The docs on the DIV_ROUND_CLOSEST macro explain that dividing a negative value by an unsigned type is undefined behavior. The driver was doing this in several places, i.e. data->shunt_uohms has type of u32. The actual "undefined" behavior is that it converts both values to unsigned before doing the division, for example: int ret = DIV_ROUND_CLOSEST(-100, 3U); results in ret == 1431655732 instead of -33. Furthermore the MILLI macro has a type of unsigned long. Multiplying a signed long by an unsigned long results in an unsigned long. So, we need to cast both MILLI and data data->shunt_uohms to long when using the DIV_ROUND_CLOSEST macro. Fixes: f07f9d2467f4 ("hwmon: (tmp513) Use SI constants from units.h") Fixes: 59dfa75e5d82 ("hwmon: Add driver for Texas Instruments TMP512/513 sensor chips.") Signed-off-by: David Lechner <dlechner@baylibre.com> Link: https://lore.kernel.org/r/20250114-fix-si-prefix-macro-sign-bugs-v1-1-696fd8d10f00@baylibre.com [groeck: Drop some continuation lines] Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Diffstat (limited to 'tools/perf/scripts/python/gecko.py')
0 files changed, 0 insertions, 0 deletions