Skip to content

iio: adc: imx93: fix a signedness bug in imx93_adc_read_raw()

Steve Best requested to merge sfbest/centos-stream-9:2229305 into main

Bugzilla: https://bugzilla.redhat.com/2229305

Build Info: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=54454398

Tested: Did sanity boot testing on (nxp-imx8mquad-01.edge1) system.

commit 20f291b88ecf23f674ee2ed980a4d93b7f16a06f Author: Dan Carpenter error27@gmail.com Date: Tue Feb 14 18:47:30 2023 +0300

iio: adc: imx93: fix a signedness bug in imx93_adc_read_raw()

The problem is these lines:

        ret = vref_uv = regulator_get_voltage(adc->vref);
        if (ret < 0)

The "ret" variable is type long and "vref_uv" is u32 so that means
the condition can never be true on a 64bit system.  A negative error
code from regulator_get_voltage() would be cast to a high positive
u32 value and then remain a high positive value when cast to a long.

The "ret" variable only ever stores ints so it should be declared as
an int.  We can delete the "vref_uv" variable and use "ret" directly.

Fixes: 7d02296ac8b8 ("iio: adc: add imx93 adc support")
Signed-off-by: Dan Carpenter <error27@gmail.com>
Reviewed-by: Haibo Chen <haibo.chen@nxp.com>
Link: https://lore.kernel.org/r/Y+utEvjfjQRQo2QB@kili
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Signed-off-by: Steve Best sbest@redhat.com

Merge request reports