On Fri, Oct 21, 2022 at 4:21 AM kernel test robot <lkp@xxxxxxxxx> wrote: > > tree: git://git.kernel.org/pub/scm/linux/kernel/git/song/md.git md-next > head: c748adfcbe0bd0c760c68d78434a1dfc0344b6b6 > commit: c748adfcbe0bd0c760c68d78434a1dfc0344b6b6 [6/6] md/bitmap: Fix bitmap chunk size overflow issues > config: i386-randconfig-a004 > compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1) > reproduce (this is a W=1 build): > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # https://git.kernel.org/pub/scm/linux/kernel/git/song/md.git/commit/?id=c748adfcbe0bd0c760c68d78434a1dfc0344b6b6 > git remote add song-md git://git.kernel.org/pub/scm/linux/kernel/git/song/md.git > git fetch --no-tags song-md md-next > git checkout c748adfcbe0bd0c760c68d78434a1dfc0344b6b6 > # save the config file > mkdir build_dir && cp config build_dir/.config > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/md/ > > If you fix the issue, kindly add following tag where applicable > | Reported-by: kernel test robot <lkp@xxxxxxxxx> > > All warnings (new ones prefixed by >>): > > >> drivers/md/md-bitmap.c:2541:12: warning: result of comparison of constant 4294967296 with expression of type 'unsigned long' is always false [-Wtautological-constant-out-of-range-compare] > if (csize >= (1ULL << (BITS_PER_BYTE * > ~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~ > 1 warning generated. > Thx for catch it. This can be fixed by: diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c index 44f29cb1fde1..be9f3a768c9f 100644 --- a/drivers/md/md-bitmap.c +++ b/drivers/md/md-bitmap.c @@ -2538,7 +2538,7 @@ chunksize_store(struct mddev *mddev, const char *buf, size_t len) if (csize < 512 || !is_power_of_2(csize)) return -EINVAL; - if (csize >= (1ULL << (BITS_PER_BYTE * + if (BITS_PER_LONG == 64 && csize >= (1ULL << (BITS_PER_BYTE * Song, do you want a seperate fix or will you fold it into the patch itself? > > vim +2541 drivers/md/md-bitmap.c > > 2526 > 2527 static ssize_t > 2528 chunksize_store(struct mddev *mddev, const char *buf, size_t len) > 2529 { > 2530 /* Can only be changed when no bitmap is active */ > 2531 int rv; > 2532 unsigned long csize; > 2533 if (mddev->bitmap) > 2534 return -EBUSY; > 2535 rv = kstrtoul(buf, 10, &csize); > 2536 if (rv) > 2537 return rv; > 2538 if (csize < 512 || > 2539 !is_power_of_2(csize)) > 2540 return -EINVAL; > > 2541 if (csize >= (1ULL << (BITS_PER_BYTE * > 2542 sizeof(((bitmap_super_t *)0)->chunksize)))) > 2543 return -EOVERFLOW; > 2544 mddev->bitmap_info.chunksize = csize; > 2545 return len; > 2546 } > 2547 > > -- > 0-DAY CI Kernel Test Service > https://01.org/lkp