Re: [PATCH 2/3] hwmon: (ltc4282) Clamp negative current limits
[email protected] Wed, 05 Aug 2026 01:04:23 +0000
| Newsgroups | org.kernel.vger.linux-hwmon |
|---|---|
| Message-ID | <[email protected]> |
> When a negative value is passed to ltc4282_write_curr(), the signed long
> val is cast directly to u64:
>=20
> drivers/hwmon/ltc4282.c:ltc4282_write_curr() {
> /* need to pass it in millivolt */
> u32 in =3D DIV_ROUND_CLOSEST_ULL((u64)val * st->rsense, DECA * MI=
CRO);
> ...
> }
>=20
> This cast converts negative inputs into large positive values. The
> subsequent division result overflows the u32 in variable, truncating
> to a pseudo-random positive value. When this is passed to
> ltc4282_write_voltage_byte(), it is clamped to the maximum limit instead
> of zero.
>=20
> Clamp val to 0 and to the maximum supported upper limit before the cast
> and assign the result to a 64-bit temporary variable before the division
> to avoid the underflow and an also possible overflow.
>=20
> Reported-by: Sashiko <[email protected]>
> Fixes: cbc29538dbf7d ("hwmon: Add driver for LTC4282")
> Cc: Nuno Sa <[email protected]>
> Signed-off-by: Guenter Roeck <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great!
--=20
Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260805005721.1566=
[email protected]?part=3D2