iio: adc: ti-adc161s626: add regulator support
Hello Matt Ranostay,
The patch 92f0afb5b2be: "iio: adc: ti-adc161s626: add regulator support" from Sep 18, 2016, leads to the following static checker warning:
drivers/iio/adc/ti-adc161s626.c:237 ti_adc_probe() error: 'data->ref' dereferencing possible ERR_PTR()
drivers/iio/adc/ti-adc161s626.c
214
215 data->ref = devm_regulator_get(&spi->dev, "vdda");
216 if (!IS_ERR(data->ref)) {
I don't understand what's going on here.
217 ret = regulator_enable(data->ref); 218 if (ret < 0) 219 return ret; 220 } 221 222 ret = iio_triggered_buffer_setup(indio_dev, NULL, 223 ti_adc_trigger_handler, NULL); 224 if (ret) 225 goto error_regulator_disable; 226 227 ret = iio_device_register(indio_dev); 228 if (ret) 229 goto error_unreg_buffer; 230 231 return 0; 232 233 error_unreg_buffer: 234 iio_triggered_buffer_cleanup(indio_dev); 235 236 error_regulator_disable: 237 regulator_disable(data->ref);
Static checker is correct.
238
239 return ret;
240 }
regards,
dan carpenter
Quoted 9 lines · Dan Carpenter
Hello Matt Ranostay,
The patch
92f0afb5b2be: "iio: adc: ti-adc161s626: add regulator support" from Sep 18, 2016, leads to the following static checker warning:drivers/iio/adc/ti-adc161s626.c:237 ti_adc_probe() error: 'data->ref' dereferencing possible ERR_PTR()
Quoted 6 lines
drivers/iio/adc/ti-adc161s626.c
214215 data->ref = devm_regulator_get(&spi->dev, "vdda"); 216 if (!IS_ERR(data->ref)) {I don't understand what's going on here.
Ok seems weird but this is because of devm_regulator_get() returning a dummy regulator (CONFIG_REGULATOR_DUMMY) in case "vdda" isn't defined.
So no reason to enable that...
Quoted 23 lines
217 ret = regulator_enable(data->ref); 218 if (ret < 0) 219 return ret; 220 } 221 222 ret = iio_triggered_buffer_setup(indio_dev, NULL, 223 ti_adc_trigger_handler, NULL); 224 if (ret) 225 goto error_regulator_disable; 226 227 ret = iio_device_register(indio_dev); 228 if (ret) 229 goto error_unreg_buffer; 230 231 return 0; 232 233 error_unreg_buffer: 234 iio_triggered_buffer_cleanup(indio_dev); 235 236 error_regulator_disable: 237 regulator_disable(data->ref);
Quoted 1 line
Static checker is correct.
Ok that is part is probably true and maybe needs a IS_ERR check
Quoted 11 lines
238 239 return ret; 240 }regards,
dan carpenter
--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html