tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   625d3449788f85569096780592549d0340e9c0c7
commit: 295bcca84916cb5079140a89fccb472bb8d1f6e2 linux/bits.h: add compile time 
sanity check of GENMASK inputs
date:   3 months ago
config: i386-randconfig-r012-20200622 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
reproduce (this is a W=1 build):
        git checkout 295bcca84916cb5079140a89fccb472bb8d1f6e2
        # save the attached .config to linux build tree
        make W=1 ARCH=i386 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All warnings (new ones prefixed by >>, old ones prefixed by <<):

In file included from include/linux/bitfield.h:10,
from drivers/iio/adc/meson_saradc.c:8:
drivers/iio/adc/meson_saradc.c: In function 'meson_sar_adc_read_raw_sample':
include/linux/bits.h:26:28: warning: comparison of unsigned expression < 0 is 
always false [-Wtype-limits]
26 |   __builtin_constant_p((l) > (h)), (l) > (h), 0)))
|                            ^
include/linux/build_bug.h:16:62: note: in definition of macro 
'BUILD_BUG_ON_ZERO'
16 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
|                                                              ^
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 |  (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
|   ^~~~~~~~~~~~~~~~~~~
>> drivers/iio/adc/meson_saradc.c:371:14: note: in expansion of macro 'GENMASK'
371 |  fifo_val &= GENMASK(priv->param->resolution - 1, 0);
|              ^~~~~~~
include/linux/bits.h:26:40: warning: comparison of unsigned expression < 0 is 
always false [-Wtype-limits]
26 |   __builtin_constant_p((l) > (h)), (l) > (h), 0)))
|                                        ^
include/linux/build_bug.h:16:62: note: in definition of macro 
'BUILD_BUG_ON_ZERO'
16 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
|                                                              ^
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 |  (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
|   ^~~~~~~~~~~~~~~~~~~
>> drivers/iio/adc/meson_saradc.c:371:14: note: in expansion of macro 'GENMASK'
371 |  fifo_val &= GENMASK(priv->param->resolution - 1, 0);
|              ^~~~~~~

vim +/GENMASK +371 drivers/iio/adc/meson_saradc.c

3adbf34273306f Martin Blumenstingl 2017-01-22  342  
3adbf34273306f Martin Blumenstingl 2017-01-22  343  static int 
meson_sar_adc_read_raw_sample(struct iio_dev *indio_dev,
3adbf34273306f Martin Blumenstingl 2017-01-22  344                              
         const struct iio_chan_spec *chan,
3adbf34273306f Martin Blumenstingl 2017-01-22  345                              
         int *val)
3adbf34273306f Martin Blumenstingl 2017-01-22  346  {
3adbf34273306f Martin Blumenstingl 2017-01-22  347      struct 
meson_sar_adc_priv *priv = iio_priv(indio_dev);
6a882a2cbeb09b Heiner Kallweit     2017-02-15  348      int regval, fifo_chan, 
fifo_val, count;
3adbf34273306f Martin Blumenstingl 2017-01-22  349  
3af109131b7eb8 Heiner Kallweit     2017-02-15  350      
if(!wait_for_completion_timeout(&priv->done,
3af109131b7eb8 Heiner Kallweit     2017-02-15  351                              
msecs_to_jiffies(MESON_SAR_ADC_TIMEOUT)))
3af109131b7eb8 Heiner Kallweit     2017-02-15  352              return 
-ETIMEDOUT;
3adbf34273306f Martin Blumenstingl 2017-01-22  353  
6a882a2cbeb09b Heiner Kallweit     2017-02-15  354      count = 
meson_sar_adc_get_fifo_count(indio_dev);
6a882a2cbeb09b Heiner Kallweit     2017-02-15  355      if (count != 1) {
6a882a2cbeb09b Heiner Kallweit     2017-02-15  356              
dev_err(&indio_dev->dev,
6a882a2cbeb09b Heiner Kallweit     2017-02-15  357                      "ADC 
FIFO has %d element(s) instead of one\n", count);
6a882a2cbeb09b Heiner Kallweit     2017-02-15  358              return -EINVAL;
3adbf34273306f Martin Blumenstingl 2017-01-22  359      }
3adbf34273306f Martin Blumenstingl 2017-01-22  360  
6a882a2cbeb09b Heiner Kallweit     2017-02-15  361      
regmap_read(priv->regmap, MESON_SAR_ADC_FIFO_RD, &regval);
6a882a2cbeb09b Heiner Kallweit     2017-02-15  362      fifo_chan = 
FIELD_GET(MESON_SAR_ADC_FIFO_RD_CHAN_ID_MASK, regval);
827df0571fb32d Martin Blumenstingl 2018-09-25  363      if (fifo_chan != 
chan->address) {
6a882a2cbeb09b Heiner Kallweit     2017-02-15  364              
dev_err(&indio_dev->dev,
827df0571fb32d Martin Blumenstingl 2018-09-25  365                      "ADC 
FIFO entry belongs to channel %d instead of %lu\n",
827df0571fb32d Martin Blumenstingl 2018-09-25  366                      
fifo_chan, chan->address);
6a882a2cbeb09b Heiner Kallweit     2017-02-15  367              return -EINVAL;
6a882a2cbeb09b Heiner Kallweit     2017-02-15  368      }
3adbf34273306f Martin Blumenstingl 2017-01-22  369  
6a882a2cbeb09b Heiner Kallweit     2017-02-15  370      fifo_val = 
FIELD_GET(MESON_SAR_ADC_FIFO_RD_SAMPLE_VALUE_MASK, regval);
057e5a1109faa0 Martin Blumenstingl 2018-09-23 @371      fifo_val &= 
GENMASK(priv->param->resolution - 1, 0);
48ba7c3c0b3736 Heiner Kallweit     2017-03-18  372      *val = 
meson_sar_adc_calib_val(indio_dev, fifo_val);
3adbf34273306f Martin Blumenstingl 2017-01-22  373  
3adbf34273306f Martin Blumenstingl 2017-01-22  374      return 0;
3adbf34273306f Martin Blumenstingl 2017-01-22  375  }
3adbf34273306f Martin Blumenstingl 2017-01-22  376  

:::::: The code at line 371 was first introduced by commit
:::::: 057e5a1109faa01091a989c224833e2df6003b2e iio: adc: meson-saradc: 
simplify access to meson_sar_adc_param

:::::: TO: Martin Blumenstingl <[email protected]>
:::::: CC: Jonathan Cameron <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

Reply via email to