CC: kbuild-all(a)lists.01.org CC: linux-kernel(a)vger.kernel.org TO: "Christian König" CC: Dave Airlie tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 8f9d0349841a2871624bb1e85309e03e9867c16e commit: 54d04ea8cdbd143496e4f5cc9c0a9f86c0e55a2e drm/ttm: merge offset and base in ttm_bus_placement date: 12 months ago :::::: branch date: 3 hours ago :::::: commit date: 12 months ago config: arc-randconfig-m031-20210827 (attached as .config) compiler: arceb-elf-gcc (GCC) 11.2.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/radeon/radeon_ttm.c:382 radeon_ttm_io_mem_reserve() warn: should 'mem->start << 14' be a 64 bit type? Old smatch warnings: drivers/gpu/drm/radeon/radeon_ttm.c:536 radeon_ttm_backend_bind() warn: should 'bo_mem->start << 14' be a 64 bit type? drivers/gpu/drm/radeon/radeon_ttm.c:631 radeon_ttm_tt_populate() error: we previously assumed 'gtt' could be null (see line 619) arch/arc/include/asm/thread_info.h:65 current_thread_info() error: uninitialized symbol 'sp'. vim +382 drivers/gpu/drm/radeon/radeon_ttm.c 771fe6b912fca5 Jerome Glisse 2009-06-05 361 2966141ad2dda2 Dave Airlie 2020-08-04 362 static int radeon_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_resource *mem) 0a2d50e3a8faaf Jerome Glisse 2010-04-09 363 { 0a2d50e3a8faaf Jerome Glisse 2010-04-09 364 struct radeon_device *rdev = radeon_get_rdev(bdev); ebb21aa1882f41 Dave Airlie 2020-08-11 365 size_t bus_size = (size_t)mem->num_pages << PAGE_SHIFT; 0a2d50e3a8faaf Jerome Glisse 2010-04-09 366 0a2d50e3a8faaf Jerome Glisse 2010-04-09 367 switch (mem->mem_type) { 0a2d50e3a8faaf Jerome Glisse 2010-04-09 368 case TTM_PL_SYSTEM: 0a2d50e3a8faaf Jerome Glisse 2010-04-09 369 /* system memory */ 0a2d50e3a8faaf Jerome Glisse 2010-04-09 370 return 0; 0a2d50e3a8faaf Jerome Glisse 2010-04-09 371 case TTM_PL_TT: a7fb8a23c1afa6 Daniel Vetter 2015-09-09 372 #if IS_ENABLED(CONFIG_AGP) 0a2d50e3a8faaf Jerome Glisse 2010-04-09 373 if (rdev->flags & RADEON_IS_AGP) { 0a2d50e3a8faaf Jerome Glisse 2010-04-09 374 /* RADEON_IS_AGP is set only if AGP is active */ 54d04ea8cdbd14 Christian König 2020-09-07 375 mem->bus.offset = (mem->start << PAGE_SHIFT) + 54d04ea8cdbd14 Christian König 2020-09-07 376 rdev->mc.agp_base; 365048ff7f977c Michel Dänzer 2010-05-19 377 mem->bus.is_iomem = !rdev->ddev->agp->cant_use_aperture; 0a2d50e3a8faaf Jerome Glisse 2010-04-09 378 } 0a2d50e3a8faaf Jerome Glisse 2010-04-09 379 #endif 0a2d50e3a8faaf Jerome Glisse 2010-04-09 380 break; 0a2d50e3a8faaf Jerome Glisse 2010-04-09 381 case TTM_PL_VRAM: d961db75ce86a8 Ben Skeggs 2010-08-05 @382 mem->bus.offset = mem->start << PAGE_SHIFT; 0a2d50e3a8faaf Jerome Glisse 2010-04-09 383 /* check if it's visible */ ebb21aa1882f41 Dave Airlie 2020-08-11 384 if ((mem->bus.offset + bus_size) > rdev->mc.visible_vram_size) 0a2d50e3a8faaf Jerome Glisse 2010-04-09 385 return -EINVAL; 54d04ea8cdbd14 Christian König 2020-09-07 386 mem->bus.offset += rdev->mc.aper_base; 0a2d50e3a8faaf Jerome Glisse 2010-04-09 387 mem->bus.is_iomem = true; ffb57c4b8612c3 Jay Estabrook 2011-07-06 388 #ifdef __alpha__ ffb57c4b8612c3 Jay Estabrook 2011-07-06 389 /* ffb57c4b8612c3 Jay Estabrook 2011-07-06 390 * Alpha: use bus.addr to hold the ioremap() return, ffb57c4b8612c3 Jay Estabrook 2011-07-06 391 * so we can modify bus.base below. ffb57c4b8612c3 Jay Estabrook 2011-07-06 392 */ ffb57c4b8612c3 Jay Estabrook 2011-07-06 393 if (mem->placement & TTM_PL_FLAG_WC) ffb57c4b8612c3 Jay Estabrook 2011-07-06 394 mem->bus.addr = 54d04ea8cdbd14 Christian König 2020-09-07 395 ioremap_wc(mem->bus.offset, bus_size); ffb57c4b8612c3 Jay Estabrook 2011-07-06 396 else ffb57c4b8612c3 Jay Estabrook 2011-07-06 397 mem->bus.addr = 54d04ea8cdbd14 Christian König 2020-09-07 398 ioremap(mem->bus.offset, bus_size); 3b2c6932828027 Arvind Yadav 2017-01-24 399 if (!mem->bus.addr) 3b2c6932828027 Arvind Yadav 2017-01-24 400 return -ENOMEM; ffb57c4b8612c3 Jay Estabrook 2011-07-06 401 ffb57c4b8612c3 Jay Estabrook 2011-07-06 402 /* ffb57c4b8612c3 Jay Estabrook 2011-07-06 403 * Alpha: Use just the bus offset plus ffb57c4b8612c3 Jay Estabrook 2011-07-06 404 * the hose/domain memory base for bus.base. ffb57c4b8612c3 Jay Estabrook 2011-07-06 405 * It then can be used to build PTEs for VRAM ffb57c4b8612c3 Jay Estabrook 2011-07-06 406 * access, as done in ttm_bo_vm_fault(). ffb57c4b8612c3 Jay Estabrook 2011-07-06 407 */ 54d04ea8cdbd14 Christian König 2020-09-07 408 mem->bus.offset = (mem->bus.offset & 0x0ffffffffUL) + ffb57c4b8612c3 Jay Estabrook 2011-07-06 409 rdev->ddev->hose->dense_mem_base; ffb57c4b8612c3 Jay Estabrook 2011-07-06 410 #endif 0a2d50e3a8faaf Jerome Glisse 2010-04-09 411 break; 0a2d50e3a8faaf Jerome Glisse 2010-04-09 412 default: 0a2d50e3a8faaf Jerome Glisse 2010-04-09 413 return -EINVAL; 0a2d50e3a8faaf Jerome Glisse 2010-04-09 414 } 0a2d50e3a8faaf Jerome Glisse 2010-04-09 415 return 0; 0a2d50e3a8faaf Jerome Glisse 2010-04-09 416 } 0a2d50e3a8faaf Jerome Glisse 2010-04-09 417 :::::: The code at line 382 was first introduced by commit :::::: d961db75ce86a84f1f04e91ad1014653ed7d9f46 drm/ttm: restructure to allow driver to plug in alternate memory manager :::::: TO: Ben Skeggs :::::: CC: Ben Skeggs --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org