CC: kbuild-all(a)lists.01.org CC: linux-kernel(a)vger.kernel.org TO: Jakub Jelinek CC: "Peter Zijlstra (Intel)" CC: Andrew Morton CC: Linux Memory Management List tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 0d02ec6b3136c73c09e7859f0d0e4e2c4c07b49b commit: 2f78788b55baa3410b1ec91a576286abe1ad4d6a ilog2: improve ilog2 for constant arguments date: 3 months ago :::::: branch date: 15 hours ago :::::: commit date: 3 months ago config: i386-randconfig-m021-20210322 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter New smatch warnings: drivers/gpu/drm/i915/gem/selftests/huge_pages.c:187 fake_get_huge_pages() warn: should '1 << ((__builtin_constant_p((~0))) ?((((~0)) < 2) ?0:63 - __builtin_clzll((~0))):((4 <= 4)) ?__ilog2_u32((~0)):__ilog2_u64((~0)))' be a 64 bit type? Old smatch warnings: drivers/gpu/drm/i915/gem/i915_gem_object.h:127 __i915_gem_object_lock() error: we previously assumed 'ww' could be null (see line 119) vim +187 drivers/gpu/drm/i915/gem/selftests/huge_pages.c 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 183 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 184 static int fake_get_huge_pages(struct drm_i915_gem_object *obj) 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 185 { 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 186 struct drm_i915_private *i915 = to_i915(obj->base.dev); 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 @187 const u64 max_len = rounddown_pow_of_two(UINT_MAX); 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 188 struct sg_table *st; 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 189 struct scatterlist *sg; 84e8978e62fea6 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-09 190 unsigned int sg_page_sizes; 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 191 u64 rem; 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 192 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 193 st = kmalloc(sizeof(*st), GFP); 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 194 if (!st) 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 195 return -ENOMEM; 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 196 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 197 if (sg_alloc_table(st, obj->base.size >> PAGE_SHIFT, GFP)) { 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 198 kfree(st); 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 199 return -ENOMEM; 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 200 } 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 201 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 202 /* Use optimal page sized chunks to fill in the sg table */ 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 203 rem = obj->base.size; 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 204 sg = st->sgl; 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 205 st->nents = 0; 84e8978e62fea6 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-09 206 sg_page_sizes = 0; 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 207 do { 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 208 unsigned int page_size = get_largest_page_size(i915, rem); 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 209 unsigned int len = min(page_size * div_u64(rem, page_size), 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 210 max_len); 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 211 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 212 GEM_BUG_ON(!page_size); 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 213 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 214 sg->offset = 0; 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 215 sg->length = len; 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 216 sg_dma_len(sg) = len; 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 217 sg_dma_address(sg) = page_size; 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 218 84e8978e62fea6 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-09 219 sg_page_sizes |= len; 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 220 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 221 st->nents++; 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 222 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 223 rem -= len; 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 224 if (!rem) { 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 225 sg_mark_end(sg); 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 226 break; 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 227 } 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 228 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 229 sg = sg_next(sg); 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 230 } while (1); 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 231 c6d22ab61bfdeb drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2018-09-20 232 i915_sg_trim(st); c6d22ab61bfdeb drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2018-09-20 233 84e8978e62fea6 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-09 234 __i915_gem_object_set_pages(obj, st, sg_page_sizes); 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 235 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 236 return 0; 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 237 } 4049866f091311 drivers/gpu/drm/i915/selftests/huge_pages.c Matthew Auld 2017-10-06 238 :::::: The code at line 187 was first introduced by commit :::::: 4049866f0913110bf7de597c1177de7a1cc459cb drm/i915/selftests: huge page tests :::::: TO: Matthew Auld :::::: CC: Chris Wilson --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org