tree: git://git.kernel.org/pub/scm/linux/kernel/git/crng/random.git jd/get_random_u32_below head: 7e1db96a81c31621b3dfd6247d6e6dbad2af6893 commit: 7e1db96a81c31621b3dfd6247d6e6dbad2af6893 [23/23] random: use rejection sampling for uniform bounded integers config: sparc64-randconfig-s031-20221009 compiler: sparc64-linux-gcc (GCC) 12.1.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.4-39-gce1a6720-dirty # https://git.kernel.org/pub/scm/linux/kernel/git/crng/random.git/commit/?id=7e1db96a81c31621b3dfd6247d6e6dbad2af6893 git remote add crng-random git://git.kernel.org/pub/scm/linux/kernel/git/crng/random.git git fetch --no-tags crng-random jd/get_random_u32_below git checkout 7e1db96a81c31621b3dfd6247d6e6dbad2af6893 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=sparc64 SHELL=/bin/bash fs/ext4/ fs/ubifs/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) fs/ext4/super.c: note: in included file (through include/linux/nodemask.h, include/linux/mmzone.h, include/linux/gfp.h, ...): >> include/linux/random.h:64:69: sparse: sparse: cast truncates bits from constant value (4e2 becomes e2) >> include/linux/random.h:64:69: sparse: sparse: cast truncates bits from constant value (4e2 becomes e2) -- fs/ubifs/debug.c: note: in included file (through include/linux/nodemask.h, include/linux/mmzone.h, include/linux/gfp.h, ...): >> include/linux/random.h:64:69: sparse: sparse: cast truncates bits from constant value (ea60 becomes 60) include/linux/random.h:64:69: sparse: sparse: cast truncates bits from constant value (2710 becomes 10) include/linux/random.h:64:69: sparse: sparse: cast truncates bits from constant value (190 becomes 90) >> include/linux/random.h:64:69: sparse: sparse: cast truncates bits from constant value (3e8 becomes e8) include/linux/random.h:64:69: sparse: sparse: cast truncates bits from constant value (2710 becomes 10) vim +64 include/linux/random.h 53 54 u32 __get_random_u32_below(u32 ceil); 55 /* Returns a random integer in the interval [0, ceil), with uniform distribution. */ 56 static inline u32 get_random_u32_below(u32 ceil) 57 { 58 if (!__builtin_constant_p(ceil)) 59 return __get_random_u32_below(ceil); 60 61 for (;;) { 62 if (ceil <= 1U << 8) { 63 u32 mult = ceil * get_random_u8(); > 64 if (is_power_of_2(ceil) || (u8)mult >= -(u8)ceil % ceil) 65 return mult >> 8; 66 } else if (ceil <= 1U << 16) { 67 u32 mult = ceil * get_random_u16(); 68 if (is_power_of_2(ceil) || (u16)mult >= -(u16)ceil % ceil) 69 return mult >> 16; 70 } else { 71 u64 mult = (u64)ceil * get_random_u32(); 72 if (is_power_of_2(ceil) || (u32)mult >= -ceil % ceil) 73 return mult >> 32; 74 } 75 } 76 } 77 -- 0-DAY CI Kernel Test Service https://01.org/lkp