linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:192:16: sparse: sparse: incompatible types in comparison expression (different type sizes):
@ 2020-06-17  9:04 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-06-17  9:04 UTC (permalink / raw)
  To: Christian König
  Cc: kbuild-all, linux-kernel, Alex Deucher, Felix Kuehling

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   69119673bd50b176ded34032fadd41530fb5af21
commit: c12b84d6e0d70f1185e6daddfd12afb671791b6e drm/amdgpu: use the BAR if possible in amdgpu_device_vram_access v2
date:   4 months ago
config: x86_64-randconfig-s022-20200617 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.2-rc1-6-g78f577f8-dirty
        git checkout c12b84d6e0d70f1185e6daddfd12afb671791b6e
        # save the attached .config to linux build tree
        make W=1 C=1 ARCH=x86_64 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

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


sparse warnings: (new ones prefixed by >>)

>> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:192:16: sparse: sparse: incompatible types in comparison expression (different type sizes):
>> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:192:16: sparse:    unsigned long *
>> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:192:16: sparse:    unsigned long long *
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:442:39: sparse: sparse: cast removes address space '<asn:2>' of expression
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:462:31: sparse: sparse: cast removes address space '<asn:2>' of expression
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:1551:65: sparse: sparse: cast to restricted __le32
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:1556:55: sparse: sparse: cast to restricted __le32
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:1557:50: sparse: sparse: cast to restricted __le32
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:1558:50: sparse: sparse: cast to restricted __le32
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:1559:56: sparse: sparse: cast to restricted __le32
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:1561:25: sparse: sparse: cast to restricted __le32
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:1562:45: sparse: sparse: cast to restricted __le32
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:1563:51: sparse: sparse: cast to restricted __le32
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:1564:55: sparse: sparse: cast to restricted __le32
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:1565:57: sparse: sparse: cast to restricted __le32
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:1567:25: sparse: sparse: cast to restricted __le32
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:1568:53: sparse: sparse: cast to restricted __le32
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:1570:25: sparse: sparse: cast to restricted __le32
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:1572:25: sparse: sparse: cast to restricted __le32
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:1573:46: sparse: sparse: cast to restricted __le32
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:1577:73: sparse: sparse: cast to restricted __le32
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:1579:33: sparse: sparse: cast to restricted __le32
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:1581:33: sparse: sparse: cast to restricted __le32
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:1592:73: sparse: sparse: cast to restricted __le32

vim +192 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c

   171	
   172	/**
   173	 * VRAM access helper functions.
   174	 *
   175	 * amdgpu_device_vram_access - read/write a buffer in vram
   176	 *
   177	 * @adev: amdgpu_device pointer
   178	 * @pos: offset of the buffer in vram
   179	 * @buf: virtual address of the buffer in system memory
   180	 * @size: read/write size, sizeof(@buf) must > @size
   181	 * @write: true - write to vram, otherwise - read from vram
   182	 */
   183	void amdgpu_device_vram_access(struct amdgpu_device *adev, loff_t pos,
   184				       uint32_t *buf, size_t size, bool write)
   185	{
   186		unsigned long flags;
   187		uint32_t hi = ~0;
   188		uint64_t last;
   189	
   190	
   191	#ifdef CONFIG_64BIT
 > 192		last = min(pos + size, adev->gmc.visible_vram_size);
   193		if (last > pos) {
   194			void __iomem *addr = adev->mman.aper_base_kaddr + pos;
   195			size_t count = last - pos;
   196	
   197			if (write) {
   198				memcpy_toio(addr, buf, count);
   199				mb();
   200				amdgpu_asic_flush_hdp(adev, NULL);
   201			} else {
   202				amdgpu_asic_invalidate_hdp(adev, NULL);
   203				mb();
   204				memcpy_fromio(buf, addr, count);
   205			}
   206	
   207			if (count == size)
   208				return;
   209	
   210			pos += count;
   211			buf += count / 4;
   212			size -= count;
   213		}
   214	#endif
   215	
   216		spin_lock_irqsave(&adev->mmio_idx_lock, flags);
   217		for (last = pos + size; pos < last; pos += 4) {
   218			uint32_t tmp = pos >> 31;
   219	
   220			WREG32_NO_KIQ(mmMM_INDEX, ((uint32_t)pos) | 0x80000000);
   221			if (tmp != hi) {
   222				WREG32_NO_KIQ(mmMM_INDEX_HI, tmp);
   223				hi = tmp;
   224			}
   225			if (write)
   226				WREG32_NO_KIQ(mmMM_DATA, *buf++);
   227			else
   228				*buf++ = RREG32_NO_KIQ(mmMM_DATA);
   229		}
   230		spin_unlock_irqrestore(&adev->mmio_idx_lock, flags);
   231	}
   232	

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

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-06-17  9:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-17  9:04 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:192:16: sparse: sparse: incompatible types in comparison expression (different type sizes): kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).