All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.