From: kernel test robot <lkp@intel.com>
To: LiMing Wu <liming.wu@jaguarmicro.com>,
Jean-Philippe Brucker <jpb@kernel.org>,
"Joerg Roedel (AMD)" <joro@8bytes.org>
Cc: oe-kbuild-all@lists.linux.dev, Will Deacon <will@kernel.org>,
Robin Murphy <robin.murphy@arm.com>,
virtualization@lists.linux.dev, iommu@lists.linux.dev,
angus.chen@jaguarmicro.com, Liming Wu <liming.wu@jaguarmicro.com>
Subject: Re: [PATCH] iommu/virtio: Add debugfs state dump
Date: Mon, 17 Aug 2026 11:41:45 +0800 [thread overview]
Message-ID: <202608171132.xtGhKM9V-lkp@intel.com> (raw)
In-Reply-To: <20260731014838.31187-1-liming.wu@jaguarmicro.com>
Hi LiMing,
kernel test robot noticed the following build warnings:
[auto build test WARNING on linus/master]
[also build test WARNING on arm-perf/for-next/perf v7.2-rc7 next-20260814]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/LiMing-Wu/iommu-virtio-Add-debugfs-state-dump/20260815-175817
base: linus/master
patch link: https://lore.kernel.org/r/20260731014838.31187-1-liming.wu%40jaguarmicro.com
patch subject: [PATCH] iommu/virtio: Add debugfs state dump
config: i386-randconfig-141-20260817 (https://download.01.org/0day-ci/archive/20260817/202608171132.xtGhKM9V-lkp@intel.com/config)
compiler: clang version 22.1.3 (https://github.com/llvm/llvm-project e9846648fd6183ee6d8cbdb4502213fcf902a211)
smatch: v0.5.0-9187-g5189e3fb
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260817/202608171132.xtGhKM9V-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202608171132.xtGhKM9V-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/iommu/virtio-iommu.c:165:6: warning: format specifies type 'unsigned long long' but the argument has type 'dma_addr_t' (aka 'unsigned int') [-Wformat]
164 | seq_printf(s, "input_range: %#llx-%#llx\n",
| ~~~~~
| %#x
165 | viommu->geometry.aperture_start,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/iommu/virtio-iommu.c:166:6: warning: format specifies type 'unsigned long long' but the argument has type 'dma_addr_t' (aka 'unsigned int') [-Wformat]
164 | seq_printf(s, "input_range: %#llx-%#llx\n",
| ~~~~~
| %#x
165 | viommu->geometry.aperture_start,
166 | viommu->geometry.aperture_end);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/iommu/virtio-iommu.c:242:62: warning: implicit conversion from 'unsigned long long' to 'unsigned long' changes value from 18446744073709551615 to 4294967295 [-Wconstant-conversion]
242 | for (node = interval_tree_iter_first(&vdomain->mappings, 0, ULLONG_MAX);
| ~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~
include/vdso/limits.h:16:21: note: expanded from macro 'ULLONG_MAX'
16 | #define ULLONG_MAX (~0ULL)
| ^~~~~
drivers/iommu/virtio-iommu.c:243:53: warning: implicit conversion from 'unsigned long long' to 'unsigned long' changes value from 18446744073709551615 to 4294967295 [-Wconstant-conversion]
243 | node; node = interval_tree_iter_next(node, 0, ULLONG_MAX))
| ~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~
include/vdso/limits.h:16:21: note: expanded from macro 'ULLONG_MAX'
16 | #define ULLONG_MAX (~0ULL)
| ^~~~~
drivers/iommu/virtio-iommu.c:263:6: warning: format specifies type 'unsigned long long' but the argument has type 'dma_addr_t' (aka 'unsigned int') [-Wformat]
260 | "id=%u type=%s endpoints=%lu mappings=%lu aperture=%#llx-%#llx pgsize_bitmap=%#lx map_flags=%#x\n",
| ~~~~~
| %#x
261 | vdomain->id, viommu_domain_type_name(vdomain->domain.type),
262 | vdomain->nr_endpoints, mappings,
263 | vdomain->domain.geometry.aperture_start,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/iommu/virtio-iommu.c:264:6: warning: format specifies type 'unsigned long long' but the argument has type 'dma_addr_t' (aka 'unsigned int') [-Wformat]
260 | "id=%u type=%s endpoints=%lu mappings=%lu aperture=%#llx-%#llx pgsize_bitmap=%#lx map_flags=%#x\n",
| ~~~~~
| %#x
261 | vdomain->id, viommu_domain_type_name(vdomain->domain.type),
262 | vdomain->nr_endpoints, mappings,
263 | vdomain->domain.geometry.aperture_start,
264 | vdomain->domain.geometry.aperture_end,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/iommu/virtio-iommu.c:296:62: warning: implicit conversion from 'unsigned long long' to 'unsigned long' changes value from 18446744073709551615 to 4294967295 [-Wconstant-conversion]
296 | for (node = interval_tree_iter_first(&vdomain->mappings, 0, ULLONG_MAX);
| ~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~
include/vdso/limits.h:16:21: note: expanded from macro 'ULLONG_MAX'
16 | #define ULLONG_MAX (~0ULL)
| ^~~~~
drivers/iommu/virtio-iommu.c:297:53: warning: implicit conversion from 'unsigned long long' to 'unsigned long' changes value from 18446744073709551615 to 4294967295 [-Wconstant-conversion]
297 | node; node = interval_tree_iter_next(node, 0, ULLONG_MAX)) {
| ~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~
include/vdso/limits.h:16:21: note: expanded from macro 'ULLONG_MAX'
16 | #define ULLONG_MAX (~0ULL)
| ^~~~~
8 warnings generated.
vim +165 drivers/iommu/virtio-iommu.c
158
159 static int viommu_debugfs_status_show(struct seq_file *s, void *unused)
160 {
161 struct viommu_dev *viommu = s->private;
162
163 seq_printf(s, "device: %s\n", virtio_bus_name(viommu->vdev));
164 seq_printf(s, "input_range: %#llx-%#llx\n",
> 165 viommu->geometry.aperture_start,
166 viommu->geometry.aperture_end);
167 seq_printf(s, "page_size_mask: %#llx\n", viommu->pgsize_bitmap);
168 seq_printf(s, "domain_range: %u-%u\n", viommu->first_domain,
169 viommu->last_domain);
170 seq_printf(s, "identity_domain_id: %u\n",
171 viommu->identity_domain_id);
172 seq_printf(s, "probe_size: %u\n", viommu->probe_size);
173 seq_printf(s, "map_flags: %#x\n", viommu->map_flags);
174 seq_puts(s, "features:\n");
175 viommu_debugfs_feature(s, viommu, VIRTIO_IOMMU_F_MAP_UNMAP,
176 "map_unmap");
177 viommu_debugfs_feature(s, viommu, VIRTIO_IOMMU_F_INPUT_RANGE,
178 "input_range");
179 viommu_debugfs_feature(s, viommu, VIRTIO_IOMMU_F_DOMAIN_RANGE,
180 "domain_range");
181 viommu_debugfs_feature(s, viommu, VIRTIO_IOMMU_F_PROBE, "probe");
182 viommu_debugfs_feature(s, viommu, VIRTIO_IOMMU_F_MMIO, "mmio");
183 viommu_debugfs_feature(s, viommu, VIRTIO_IOMMU_F_BYPASS_CONFIG,
184 "bypass_config");
185
186 return 0;
187 }
188 DEFINE_SHOW_ATTRIBUTE(viommu_debugfs_status);
189
190 static void viommu_debugfs_print_endpoint(struct seq_file *s,
191 struct viommu_endpoint *vdev)
192 {
193 int i;
194 u32 domain_id = 0;
195 const char *domain_type = "none";
196 struct iommu_group *group;
197 struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(vdev->dev);
198
199 if (vdev->vdomain) {
200 domain_type = viommu_domain_type_name(vdev->vdomain->domain.type);
201 if (vdev->vdomain == &viommu_identity_domain)
202 domain_id = vdev->viommu->identity_domain_id;
203 else
204 domain_id = vdev->vdomain->id;
205 }
206
207 group = iommu_group_get(vdev->dev);
208 seq_printf(s, "endpoint=%s group_id=%d domain_type=%s",
209 dev_name(vdev->dev), group ? iommu_group_id(group) : -1,
210 domain_type);
211 if (vdev->vdomain)
212 seq_printf(s, " domain_id=%u", domain_id);
213 if (fwspec) {
214 seq_puts(s, " ids=");
215 for (i = 0; i < fwspec->num_ids; i++)
216 seq_printf(s, "%s%u", i ? "," : "", fwspec->ids[i]);
217 }
218 seq_putc(s, '\n');
219
220 iommu_group_put(group);
221 }
222
223 static int viommu_debugfs_endpoints_show(struct seq_file *s, void *unused)
224 {
225 struct viommu_dev *viommu = s->private;
226 struct viommu_endpoint *vdev;
227
228 mutex_lock(&viommu->debugfs_lock);
229 list_for_each_entry(vdev, &viommu->debugfs_endpoints, debugfs_node)
230 viommu_debugfs_print_endpoint(s, vdev);
231 mutex_unlock(&viommu->debugfs_lock);
232
233 return 0;
234 }
235 DEFINE_SHOW_ATTRIBUTE(viommu_debugfs_endpoints);
236
237 static unsigned long viommu_debugfs_count_mappings(struct viommu_domain *vdomain)
238 {
239 unsigned long count = 0;
240 struct interval_tree_node *node;
241
> 242 for (node = interval_tree_iter_first(&vdomain->mappings, 0, ULLONG_MAX);
243 node; node = interval_tree_iter_next(node, 0, ULLONG_MAX))
244 count++;
245
246 return count;
247 }
248
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2026-08-17 3:42 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-31 1:48 [PATCH] iommu/virtio: Add debugfs state dump LiMing Wu
2026-08-17 3:41 ` kernel test robot [this message]
2026-08-17 4:42 ` kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202608171132.xtGhKM9V-lkp@intel.com \
--to=lkp@intel.com \
--cc=angus.chen@jaguarmicro.com \
--cc=iommu@lists.linux.dev \
--cc=joro@8bytes.org \
--cc=jpb@kernel.org \
--cc=liming.wu@jaguarmicro.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=robin.murphy@arm.com \
--cc=virtualization@lists.linux.dev \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.