tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 4ca786ae6681b90b0ec3f4c55c89d12f835f8944 commit: 920f4b7e923b35fd9d117fd3cb616b310cd41010 [1304/1443] fs: jfs: fix shift-out-of-bounds in dbAllocAG config: mips-randconfig-r005-20221017 compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project 791a7ae1ba3efd6bca96338e10ffde557ba83920) 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 # install mips cross compiling tool for clang build # apt-get install binutils-mipsel-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=920f4b7e923b35fd9d117fd3cb616b310cd41010 git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next master git checkout 920f4b7e923b35fd9d117fd3cb616b310cd41010 # 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=mips SHELL=/bin/bash fs/jfs/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> fs/jfs/jfs_dmap.c:196:23: warning: result of comparison of constant 8796093022201 with expression of type 'int' is always false [-Wtautological-constant-out-of-range-compare] if (bmp->db_agl2size > MAXMAPSIZE - L2MAXAG) { ~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~ 1 warning generated. vim +/int +196 fs/jfs/jfs_dmap.c 135 136 /* 137 * NAME: dbMount() 138 * 139 * FUNCTION: initializate the block allocation map. 140 * 141 * memory is allocated for the in-core bmap descriptor and 142 * the in-core descriptor is initialized from disk. 143 * 144 * PARAMETERS: 145 * ipbmap - pointer to in-core inode for the block map. 146 * 147 * RETURN VALUES: 148 * 0 - success 149 * -ENOMEM - insufficient memory 150 * -EIO - i/o error 151 * -EINVAL - wrong bmap data 152 */ 153 int dbMount(struct inode *ipbmap) 154 { 155 struct bmap *bmp; 156 struct dbmap_disk *dbmp_le; 157 struct metapage *mp; 158 int i, err; 159 160 /* 161 * allocate/initialize the in-memory bmap descriptor 162 */ 163 /* allocate memory for the in-memory bmap descriptor */ 164 bmp = kmalloc(sizeof(struct bmap), GFP_KERNEL); 165 if (bmp == NULL) 166 return -ENOMEM; 167 168 /* read the on-disk bmap descriptor. */ 169 mp = read_metapage(ipbmap, 170 BMAPBLKNO << JFS_SBI(ipbmap->i_sb)->l2nbperpage, 171 PSIZE, 0); 172 if (mp == NULL) { 173 err = -EIO; 174 goto err_kfree_bmp; 175 } 176 177 /* copy the on-disk bmap descriptor to its in-memory version. */ 178 dbmp_le = (struct dbmap_disk *) mp->data; 179 bmp->db_mapsize = le64_to_cpu(dbmp_le->dn_mapsize); 180 bmp->db_nfree = le64_to_cpu(dbmp_le->dn_nfree); 181 bmp->db_l2nbperpage = le32_to_cpu(dbmp_le->dn_l2nbperpage); 182 bmp->db_numag = le32_to_cpu(dbmp_le->dn_numag); 183 if (!bmp->db_numag) { 184 err = -EINVAL; 185 goto err_release_metapage; 186 } 187 188 bmp->db_maxlevel = le32_to_cpu(dbmp_le->dn_maxlevel); 189 bmp->db_maxag = le32_to_cpu(dbmp_le->dn_maxag); 190 bmp->db_agpref = le32_to_cpu(dbmp_le->dn_agpref); 191 bmp->db_aglevel = le32_to_cpu(dbmp_le->dn_aglevel); 192 bmp->db_agheight = le32_to_cpu(dbmp_le->dn_agheight); 193 bmp->db_agwidth = le32_to_cpu(dbmp_le->dn_agwidth); 194 bmp->db_agstart = le32_to_cpu(dbmp_le->dn_agstart); 195 bmp->db_agl2size = le32_to_cpu(dbmp_le->dn_agl2size); > 196 if (bmp->db_agl2size > MAXMAPSIZE - L2MAXAG) { 197 err = -EINVAL; 198 goto err_release_metapage; 199 } 200 201 for (i = 0; i < MAXAG; i++) 202 bmp->db_agfree[i] = le64_to_cpu(dbmp_le->dn_agfree[i]); 203 bmp->db_agsize = le64_to_cpu(dbmp_le->dn_agsize); 204 bmp->db_maxfreebud = dbmp_le->dn_maxfreebud; 205 206 /* release the buffer. */ 207 release_metapage(mp); 208 209 /* bind the bmap inode and the bmap descriptor to each other. */ 210 bmp->db_ipbmap = ipbmap; 211 JFS_SBI(ipbmap->i_sb)->bmap = bmp; 212 213 memset(bmp->db_active, 0, sizeof(bmp->db_active)); 214 215 /* 216 * allocate/initialize the bmap lock 217 */ 218 BMAP_LOCK_INIT(bmp); 219 220 return (0); 221 222 err_release_metapage: 223 release_metapage(mp); 224 err_kfree_bmp: 225 kfree(bmp); 226 return err; 227 } 228 -- 0-DAY CI Kernel Test Service https://01.org/lkp