[kbuild] [iio:testing 39/69] drivers/iio/cdc/ad7150.c:321 ad7150_write_event_config() error: uninitialized symbol 'ret'.

2021-04-13 Thread Dan Carpenter
Hi Jonathan,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git testing
head:   448fea9496ae166a285858bf17eb5473eb77f4dc
commit: 53e5aaab4c850f99a9eb3144cc29eccea7570c7f [39/69] iio:cdc:ad7150: Move 
driver out of staging.
config: x86_64-randconfig-m001-20210405 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 
Reported-by: Dan Carpenter 

smatch warnings:
drivers/iio/cdc/ad7150.c:321 ad7150_write_event_config() error: uninitialized 
symbol 'ret'.

vim +/ret +321 drivers/iio/cdc/ad7150.c

531efd6aa09916 drivers/staging/iio/adc/ad7150.c Jonathan Cameron   2011-09-02  
232  static int ad7150_write_event_config(struct iio_dev *indio_dev,
c4f0ebd91467c7 drivers/staging/iio/cdc/ad7150.c Shraddha Barke 2015-12-29  
233   const struct iio_chan_spec *chan,
c4f0ebd91467c7 drivers/staging/iio/cdc/ad7150.c Shraddha Barke 2015-12-29  
234   enum iio_event_type type,
1489d629a481dc drivers/staging/iio/cdc/ad7150.c Lars-Peter Clausen 2013-10-07  
235   enum iio_event_direction dir, int state)
54c5be349bf66e drivers/staging/iio/adc/ad7150.c Barry Song 2010-10-27  
236  {
531efd6aa09916 drivers/staging/iio/adc/ad7150.c Jonathan Cameron   2011-09-02  
237  struct ad7150_chip_info *chip = iio_priv(indio_dev);
887b66527c6435 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
238  int ret;
54c5be349bf66e drivers/staging/iio/adc/ad7150.c Barry Song 2010-10-27  
239  
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
240  /*
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
241   * There is only a single shared control and no on chip
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
242   * interrupt disables for the two interrupt lines.
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
243   * So, enabling will switch the events configured to enable
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
244   * whatever was most recently requested and if necessary enable_irq()
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
245   * the interrupt and any disable will disable_irq() for that
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
246   * channels interrupt.
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
247   */
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
248  if (!state) {
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
249  if ((chip->int_enabled[chan->channel]) &&
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
250  (type == chip->type) && (dir == chip->dir)) {
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
251  disable_irq(chip->interrupts[chan->channel]);
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
252  chip->int_enabled[chan->channel] = false;
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
253  }
531efd6aa09916 drivers/staging/iio/adc/ad7150.c Jonathan Cameron   2011-09-02  
254  return 0;
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
255  }
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
256  
531efd6aa09916 drivers/staging/iio/adc/ad7150.c Jonathan Cameron   2011-09-02  
257  mutex_lock(&chip->state_lock);
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
258  if ((type != chip->type) || (dir != chip->dir)) {

"ret" is not initialize on the false path.

887b66527c6435 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
259  int rising = (dir == IIO_EV_DIR_RISING);
887b66527c6435 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
260  u8 thresh_type, cfg, fixed;
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
261  
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
262  /*
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
263   * Need to temporarily disable both interrupts if
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
264   * enabled - this is to avoid races around changing
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
265   * config and thresholds.
b8546bdcf08e97 drivers/staging/iio/cdc

[kbuild] [iio:testing 39/69] drivers/iio/cdc/ad7150.c:321 ad7150_write_event_config() error: uninitialized symbol 'ret'.

2021-04-05 Thread kernel test robot
CC: kbuild-...@lists.01.org
TO: Jonathan Cameron 
CC: Alexandru Ardelean 

Hi Jonathan,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git testing
head:   448fea9496ae166a285858bf17eb5473eb77f4dc
commit: 53e5aaab4c850f99a9eb3144cc29eccea7570c7f [39/69] iio:cdc:ad7150: Move 
driver out of staging.
:: branch date: 4 hours ago
:: commit date: 4 days ago
config: x86_64-randconfig-m001-20210405 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 
Reported-by: Dan Carpenter 

smatch warnings:
drivers/iio/cdc/ad7150.c:321 ad7150_write_event_config() error: uninitialized 
symbol 'ret'.

vim +/ret +321 drivers/iio/cdc/ad7150.c

54c5be349bf66e drivers/staging/iio/adc/ad7150.c Barry Song 2010-10-27  
231  
531efd6aa09916 drivers/staging/iio/adc/ad7150.c Jonathan Cameron   2011-09-02  
232  static int ad7150_write_event_config(struct iio_dev *indio_dev,
c4f0ebd91467c7 drivers/staging/iio/cdc/ad7150.c Shraddha Barke 2015-12-29  
233   const struct iio_chan_spec *chan,
c4f0ebd91467c7 drivers/staging/iio/cdc/ad7150.c Shraddha Barke 2015-12-29  
234   enum iio_event_type type,
1489d629a481dc drivers/staging/iio/cdc/ad7150.c Lars-Peter Clausen 2013-10-07  
235   enum iio_event_direction dir, int state)
54c5be349bf66e drivers/staging/iio/adc/ad7150.c Barry Song 2010-10-27  
236  {
531efd6aa09916 drivers/staging/iio/adc/ad7150.c Jonathan Cameron   2011-09-02  
237  struct ad7150_chip_info *chip = iio_priv(indio_dev);
887b66527c6435 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
238  int ret;
54c5be349bf66e drivers/staging/iio/adc/ad7150.c Barry Song 2010-10-27  
239  
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
240  /*
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
241   * There is only a single shared control and no on chip
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
242   * interrupt disables for the two interrupt lines.
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
243   * So, enabling will switch the events configured to enable
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
244   * whatever was most recently requested and if necessary enable_irq()
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
245   * the interrupt and any disable will disable_irq() for that
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
246   * channels interrupt.
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
247   */
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
248  if (!state) {
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
249  if ((chip->int_enabled[chan->channel]) &&
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
250  (type == chip->type) && (dir == chip->dir)) {
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
251  disable_irq(chip->interrupts[chan->channel]);
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
252  chip->int_enabled[chan->channel] = false;
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
253  }
531efd6aa09916 drivers/staging/iio/adc/ad7150.c Jonathan Cameron   2011-09-02  
254  return 0;
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
255  }
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
256  
531efd6aa09916 drivers/staging/iio/adc/ad7150.c Jonathan Cameron   2011-09-02  
257  mutex_lock(&chip->state_lock);
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
258  if ((type != chip->type) || (dir != chip->dir)) {
887b66527c6435 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
259  int rising = (dir == IIO_EV_DIR_RISING);
887b66527c6435 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
260  u8 thresh_type, cfg, fixed;
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
261  
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
262  /*
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
263   * Need to temporarily disable both interrupts if
b8546bdcf08e97 drivers/staging/iio/cdc/ad7150.c Jonathan Cameron   2021-03-14  
264   * enabled - this is to avoid race