All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/gpu/drm/radeon/radeon_ttm.c:382 radeon_ttm_io_mem_reserve() warn: should 'mem->start << 12' be a 64 bit type?
@ 2021-07-23  9:04 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-07-23  9:04 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 6673 bytes --]

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: "Christian König" <christian.koenig@amd.com>
CC: Dave Airlie <airlied@redhat.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   8baef6386baaefb776bdd09b5c7630cf057c51c6
commit: 54d04ea8cdbd143496e4f5cc9c0a9f86c0e55a2e drm/ttm: merge offset and base in ttm_bus_placement
date:   11 months ago
:::::: branch date: 6 hours ago
:::::: commit date: 11 months ago
config: i386-randconfig-m021-20210723 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/gpu/drm/radeon/radeon_ttm.c:382 radeon_ttm_io_mem_reserve() warn: should 'mem->start << 12' be a 64 bit type?
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c:763 amdgpu_ttm_io_mem_reserve() warn: should 'mem->start << 12' 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 << 12' 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)
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c:325 amdgpu_ttm_map_buffer() warn: should 'i << 12' be a 64 bit type?
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c:494 amdgpu_move_blit() warn: should 'new_mem->num_pages << 12' be a 64 bit type?
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c:789 amdgpu_ttm_io_mem_pfn() warn: should 'page_offset << 12' be a 64 bit type?
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c:1339 amdgpu_ttm_tt_populate() error: we previously assumed 'gtt' could be null (see line 1324)
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c:1383 amdgpu_ttm_tt_unpopulate() error: we previously assumed 'gtt' could be null (see line 1376)

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 <bskeggs@redhat.com>
:::::: CC: Ben Skeggs <bskeggs@redhat.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 40278 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* drivers/gpu/drm/radeon/radeon_ttm.c:382 radeon_ttm_io_mem_reserve() warn: should 'mem->start << 12' be a 64 bit type?
@ 2021-06-03 17:59 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-06-03 17:59 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 6382 bytes --]

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: "Christian König" <christian.koenig@amd.com>
CC: Dave Airlie <airlied@redhat.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   324c92e5e0ee0e993bdb106fac407846ed677f6b
commit: 54d04ea8cdbd143496e4f5cc9c0a9f86c0e55a2e drm/ttm: merge offset and base in ttm_bus_placement
date:   9 months ago
:::::: branch date: 23 hours ago
:::::: commit date: 9 months ago
config: mips-randconfig-m031-20210603 (attached as .config)
compiler: mipsel-linux-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/gpu/drm/radeon/radeon_ttm.c:382 radeon_ttm_io_mem_reserve() warn: should 'mem->start << 12' be a 64 bit type?
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c:763 amdgpu_ttm_io_mem_reserve() warn: should 'mem->start << 12' 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 << 12' 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)
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c:325 amdgpu_ttm_map_buffer() warn: should 'i << 12' be a 64 bit type?
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c:494 amdgpu_move_blit() warn: should 'new_mem->num_pages << 12' be a 64 bit type?
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c:789 amdgpu_ttm_io_mem_pfn() warn: should 'page_offset << 12' be a 64 bit type?

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 <bskeggs@redhat.com>
:::::: CC: Ben Skeggs <bskeggs@redhat.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 26170 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-07-23  9:04 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-23  9:04 drivers/gpu/drm/radeon/radeon_ttm.c:382 radeon_ttm_io_mem_reserve() warn: should 'mem->start << 12' be a 64 bit type? kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2021-06-03 17:59 kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.