[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <b2168d93-12c1-443b-bb5c-bfe6df71fd8f@roeck-us.net>
Date: Mon, 16 Dec 2024 15:55:29 -0800
From: Guenter Roeck <linux@...ck-us.net>
To: Murad Masimov <m.masimov@...ima.ru>
Cc: Eric Tremblay <etremblay@...tech-controls.com>,
Jean Delvare <jdelvare@...e.com>, linux-hwmon@...r.kernel.org,
linux-kernel@...r.kernel.org, lvc-project@...uxtesting.org
Subject: Re: [PATCH 2/3] hwmon: (tmp513) Fix Current Register value
interpretation
On Mon, Dec 16, 2024 at 08:36:47PM +0300, Murad Masimov wrote:
> The value returned by the driver after processing the contents of the Current
> Register does not correspond to the TMP512/TMP513 specifications. A raw
> register value is converted to a signed integer value by a sign extension in
> accordance with the algorithm provided in the specification, but due to the
> off-by-one error in the sign bit index, the result is incorrect. Moreover,
> negative values will be reported as large positive due to missing sign
> extension from u32 to long.
>
> According to the TMP512 and TMP513 datasheets, the Current Register (07h) is a
> 16-bit two's complement integer value. E.g., if regval = 1000 0011 0000 0000,
> then the value must be (-32000 * lsb), but the driver will return (33536 * lsb).
>
> Fix off-by-one bug, and also cast data->curr_lsb_ua (which is of type u32) to
> long to prevent incorrect cast for negative values.
>
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
>
> Fixes: 59dfa75e5d82 ("hwmon: Add driver for Texas Instruments TMP512/513 sensor chips.")
> Signed-off-by: Murad Masimov <m.masimov@...ima.ru>
Applied, after fixing checkpatch complaints.
Guenter
Powered by blists - more mailing lists