Re: [PATCH] iommu/virtio: Add debugfs state dump

kernel test robot <[email protected]>
Newsgroups dev.linux.lists.oe-kbuild-all,dev.linux.lists.iommu,dev.linux.lists.virtualization
Message-ID <[email protected]>
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-buildonly-randconfig-002-20260817 (https://download.01.org/0day-ci/archive/20260817/[email protected]/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260817/[email protected]/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 <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All warnings (new ones prefixed by >>):

   drivers/iommu/virtio-iommu.c: In function 'viommu_debugfs_status_show':
>> drivers/iommu/virtio-iommu.c:164:41: warning: format '%llx' expects argument of type 'long long unsigned int', but argument 3 has type 'dma_addr_t' {aka 'unsigned int'} [-Wformat=]
     164 |         seq_printf(s, "input_range: %#llx-%#llx\n",
         |                                     ~~~~^
         |                                         |
         |                                         long long unsigned int
         |                                     %#x
     165 |                    viommu->geometry.aperture_start,
         |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                                    |
         |                                    dma_addr_t {aka unsigned int}
   drivers/iommu/virtio-iommu.c:164:47: warning: format '%llx' expects argument of type 'long long unsigned int', but argument 4 has type 'dma_addr_t' {aka 'unsigned int'} [-Wformat=]
     164 |         seq_printf(s, "input_range: %#llx-%#llx\n",
         |                                           ~~~~^
         |                                               |
         |                                               long long unsigned int
         |                                           %#x
     165 |                    viommu->geometry.aperture_start,
     166 |                    viommu->geometry.aperture_end);
         |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                                    |
         |                                    dma_addr_t {aka unsigned int}
   In file included from include/linux/limits.h:7,
                    from include/linux/overflow.h:6,
                    from include/linux/bits.h:32,
                    from include/linux/bitops.h:6,
                    from include/linux/log2.h:12,
                    from arch/x86/include/asm/div64.h:8,
                    from include/linux/math.h:6,
                    from include/linux/delay.h:12,
                    from drivers/iommu/virtio-iommu.c:10:
   drivers/iommu/virtio-iommu.c: In function 'viommu_debugfs_count_mappings':
   include/vdso/limits.h:16:25: warning: conversion from 'long long unsigned int' to 'long unsigned int' changes value from '18446744073709551615' to '4294967295' [-Woverflow]
      16 | #define ULLONG_MAX      (~0ULL)
         |                         ^~~~~~~
   drivers/iommu/virtio-iommu.c:242:69: note: in expansion of macro 'ULLONG_MAX'
     242 |         for (node = interval_tree_iter_first(&vdomain->mappings, 0, ULLONG_MAX);
         |                                                                     ^~~~~~~~~~
   include/vdso/limits.h:16:25: warning: conversion from 'long long unsigned int' to 'long unsigned int' changes value from '18446744073709551615' to '4294967295' [-Woverflow]
      16 | #define ULLONG_MAX      (~0ULL)
         |                         ^~~~~~~
   drivers/iommu/virtio-iommu.c:243:60: note: in expansion of macro 'ULLONG_MAX'
     243 |              node; node = interval_tree_iter_next(node, 0, ULLONG_MAX))
         |                                                            ^~~~~~~~~~
   drivers/iommu/virtio-iommu.c: In function 'viommu_debugfs_print_domain':
   drivers/iommu/virtio-iommu.c:260:75: warning: format '%llx' expects argument of type 'long long unsigned int', but argument 7 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",
         |                                                                       ~~~~^
         |                                                                           |
         |                                                                           long long unsigned int
         |                                                                       %#x
   ......
     263 |                    vdomain->domain.geometry.aperture_start,
         |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
         |                                            |
         |                                            dma_addr_t {aka unsigned int}
   drivers/iommu/virtio-iommu.c:260:81: warning: format '%llx' expects argument of type 'long long unsigned int', but argument 8 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",
         |                                                                             ~~~~^
         |                                                                                 |
         |                                                                                 long long unsigned int
         |                                                                             %#x
   ......
     264 |                    vdomain->domain.geometry.aperture_end,
         |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
         |                                            |
         |                                            dma_addr_t {aka unsigned int}
   drivers/iommu/virtio-iommu.c: In function 'viommu_debugfs_print_mapping':
   include/vdso/limits.h:16:25: warning: conversion from 'long long unsigned int' to 'long unsigned int' changes value from '18446744073709551615' to '4294967295' [-Woverflow]
      16 | #define ULLONG_MAX      (~0ULL)
         |                         ^~~~~~~
   drivers/iommu/virtio-iommu.c:296:69: note: in expansion of macro 'ULLONG_MAX'
     296 |         for (node = interval_tree_iter_first(&vdomain->mappings, 0, ULLONG_MAX);
         |                                                                     ^~~~~~~~~~
   include/vdso/limits.h:16:25: warning: conversion from 'long long unsigned int' to 'long unsigned int' changes value from '18446744073709551615' to '4294967295' [-Woverflow]
      16 | #define ULLONG_MAX      (~0ULL)
         |                         ^~~~~~~
   drivers/iommu/virtio-iommu.c:297:60: note: in expansion of macro 'ULLONG_MAX'
     297 |              node; node = interval_tree_iter_next(node, 0, ULLONG_MAX)) {
         |                                                            ^~~~~~~~~~


vim +164 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	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.