On Sat, Sep 22, 2018 at 11:36:16AM +0100, Jonathan Cameron wrote: > On Fri, 21 Sep 2018 15:26:03 +0800 > kbuild test robot <lkp@xxxxxxxxx> wrote: > > > Hi Eugen, > This one is leaving me stumped... > > Anyone care to point out what I'm missing that is wrong here? > > Also Eugen, please don't cc stable on a patch directly. It is fine to send > a backport request once a patch has hit mainline, but before that it's just > adding noise to a list as they won't take it directly anyway. > > Jonathan > Hi Jonathan, I run some test code here and found out that C compilers don't allow us to assign a 'const int *' to 'int *', while assign a 'const int' to 'int' is fine. In this case this driver was tring to assign a 'struct iio_chan_spec const *' to a 'struct iio_chan_spec *', mostly because of this issue. I googled this issue and someone on stack overflow said it's because this kind of action will break the check mechanism of 'const'. yours, Song Qiang > > > > I love your patch! Perhaps something to improve: > > > > [auto build test WARNING on iio/togreg] > > [also build test WARNING on v4.19-rc4 next-20180919] > > [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] > > > > url: https://github.com/0day-ci/linux/commits/Eugen-Hristev/iio-adc-at91-fix-acking-DRDY-irq-on-simple-conversions/20180920-215908 > > base: https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git togreg > > config: arm-allmodconfig (attached as .config) > > compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.0 > > reproduce: > > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > > chmod +x ~/bin/make.cross > > # save the attached .config to linux build tree > > GCC_VERSION=7.2.0 make.cross ARCH=arm > > > > All warnings (new ones prefixed by >>): > > > > drivers/iio/adc/at91_adc.c: In function 'at91_adc_trigger_handler': > > >> drivers/iio/adc/at91_adc.c:257:8: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] > > chan = idev->channels + i; > > ^ > > > > vim +/const +257 drivers/iio/adc/at91_adc.c > > > > 245 > > 246 static irqreturn_t at91_adc_trigger_handler(int irq, void *p) > > 247 { > > 248 struct iio_poll_func *pf = p; > > 249 struct iio_dev *idev = pf->indio_dev; > > 250 struct at91_adc_state *st = iio_priv(idev); > > 251 struct iio_chan_spec *chan; > > 252 int i, j = 0; > > 253 > > 254 for (i = 0; i < idev->masklength; i++) { > > 255 if (!test_bit(i, idev->active_scan_mask)) > > 256 continue; > > > 257 chan = idev->channels + i; > > 258 st->buffer[j] = at91_adc_readl(st, AT91_ADC_CHAN(st, chan->channel)); > > 259 j++; > > 260 } > > 261 > > 262 iio_push_to_buffers_with_timestamp(idev, st->buffer, pf->timestamp); > > 263 > > 264 iio_trigger_notify_done(idev->trig); > > 265 > > 266 /* Needed to ACK the DRDY interruption */ > > 267 at91_adc_readl(st, AT91_ADC_LCDR); > > 268 > > 269 enable_irq(st->irq); > > 270 > > 271 return IRQ_HANDLED; > > 272 } > > 273 > > > > --- > > 0-DAY kernel test infrastructure Open Source Technology Center > > https://lists.01.org/pipermail/kbuild-all Intel Corporation >