There is one vadc_poll_wait_eoc() call in vadc_do_conversion that we have caught its return value but lack further handling. Check and jump to err_disable label just like the other vadc_poll_wait_eoc() in this function. Signed-off-by: Dinghao Liu <dinghao.liu@xxxxxxxxxx> --- drivers/iio/adc/qcom-spmi-vadc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/iio/adc/qcom-spmi-vadc.c b/drivers/iio/adc/qcom-spmi-vadc.c index 05ff948372b3..fe36b0ba8273 100644 --- a/drivers/iio/adc/qcom-spmi-vadc.c +++ b/drivers/iio/adc/qcom-spmi-vadc.c @@ -324,6 +324,8 @@ static int vadc_do_conversion(struct vadc_priv *vadc, if (vadc->poll_eoc) { ret = vadc_poll_wait_eoc(vadc, timeout); + if (ret) + goto err_disable; } else { ret = wait_for_completion_timeout(&vadc->complete, timeout); if (!ret) { -- 2.17.1