lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aJ3l0Te5Q1d4g3u-@google.com>
Date: Thu, 14 Aug 2025 13:34:09 +0000
From: Pranjal Shrivastava <praan@...gle.com>
To: kernel test robot <lkp@...el.com>
Cc: Nicolin Chen <nicolinc@...dia.com>, oe-kbuild-all@...ts.linux.dev,
	linux-kernel@...r.kernel.org, Jason Gunthorpe <jgg@...pe.ca>,
	Alok Tiwari <alok.a.tiwari@...cle.com>
Subject: Re: drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c:305:47: sparse:
 sparse: incorrect type in assignment (different base types)

On Thu, Aug 14, 2025 at 09:21:50PM +0800, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   0cc53520e68bea7fb80fdc6bdf8d226d1b6a98d9
> commit: 32b2d3a57e26804ca96d82a222667ac0fa226cb7 iommu/tegra241-cmdqv: Add IOMMU_VEVENTQ_TYPE_TEGRA241_CMDQV support
> date:   5 weeks ago
> config: arm64-randconfig-r112-20250814 (https://download.01.org/0day-ci/archive/20250814/202508142105.Jb5Smjsg-lkp@intel.com/config)
> compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 3769ce013be2879bf0b329c14a16f5cb766f26ce)
> reproduce: (https://download.01.org/0day-ci/archive/20250814/202508142105.Jb5Smjsg-lkp@intel.com/reproduce)
> 
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@...el.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202508142105.Jb5Smjsg-lkp@intel.com/
> 
> sparse warnings: (new ones prefixed by >>)
> >> drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c:305:47: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le64 @@     got unsigned long long @@
>    drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c:305:47: sparse:     expected restricted __le64
>    drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c:305:47: sparse:     got unsigned long long
> 
> vim +305 drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c
> 
>    297	
>    298	static void tegra241_vintf_user_handle_error(struct tegra241_vintf *vintf)
>    299	{
>    300		struct iommufd_viommu *viommu = &vintf->vsmmu.core;
>    301		struct iommu_vevent_tegra241_cmdqv vevent_data;
>    302		int i;
>    303	
>    304		for (i = 0; i < LVCMDQ_ERR_MAP_NUM_64; i++)
>  > 305			vevent_data.lvcmdq_err_map[i] =
>    306				readq_relaxed(REG_VINTF(vintf, LVCMDQ_ERR_MAP_64(i)));
>    307	
>    308		iommufd_viommu_report_event(viommu, IOMMU_VEVENTQ_TYPE_TEGRA241_CMDQV,
>    309					    &vevent_data, sizeof(vevent_data));
>    310	}
>    311	
> 

I assume we'd need something like the following (untested) for this:

--- a/drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c
+++ b/drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c
@@ -303,8 +303,8 @@
 
 	for (i = 0; i < LVCMDQ_ERR_MAP_NUM_64; i++)
 		vevent_data.lvcmdq_err_map[i] =
-			readq_relaxed(REG_VINTF(vintf, LVCMDQ_ERR_MAP_64(i)));
+			cpu_to_le64(readq_relaxed(REG_VINTF(vintf, LVCMDQ_ERR_MAP_64(i))));
 
 	iommufd_viommu_report_event(viommu, IOMMU_VEVENTQ_TYPE_TEGRA241_CMDQV,
 				      &vevent_data, sizeof(vevent_data));

> -- 
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ