[kbuild] [iio:testing 39/69] drivers/iio/cdc/ad7150.c:321 ad7150_write_event_config() error: uninitialized symbol 'ret'.
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'.
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