[<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