Cast factor to s64 in order to give the compiler complete information about the proper arithmetic to use and avoid a potential integer overflow. Notice that such variable is being used in a context that expects an expression of type s64 (64 bits, signed). Addresses-Coverity-ID: 1324146 ("Unintentional integer overflow") Fixes: e13d757279bb ("iio: adc: Add QCOM SPMI PMIC5 ADC driver") Signed-off-by: Gustavo A. R. Silva <gustavo@xxxxxxxxxxxxxx> --- drivers/iio/adc/qcom-vadc-common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iio/adc/qcom-vadc-common.c b/drivers/iio/adc/qcom-vadc-common.c index dcd7fb5..e360e27 100644 --- a/drivers/iio/adc/qcom-vadc-common.c +++ b/drivers/iio/adc/qcom-vadc-common.c @@ -282,7 +282,7 @@ static int qcom_vadc_scale_code_voltage_factor(u16 adc_code, voltage = div64_s64(voltage, data->full_scale_code_volt); if (voltage > 0) { voltage *= prescale->den; - temp = prescale->num * factor; + temp = prescale->num * (s64)factor; voltage = div64_s64(voltage, temp); } else { voltage = 0; -- 2.7.4