All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: oe-kbuild-all@lists.linux.dev
Subject: Re: [PATCH v2 2/5] iommu: Add domain_alloc_identity()
Date: Sun, 2 Mar 2025 13:33:01 +0800	[thread overview]
Message-ID: <202503021205.KTYFNoX2-lkp@intel.com> (raw)
In-Reply-To: <2-v2-a3b72fd4b99a+1b6-iommu_virtio_domains_jgg@nvidia.com>

Hi Jason,

kernel test robot noticed the following build errors:

[auto build test ERROR on 2014c95afecee3e76ca4a56956a936e23283f05b]

url:    https://github.com/intel-lab-lkp/linux/commits/Jason-Gunthorpe/iommu-virtio-Break-out-bypass-identity-support-into-a-global-static/20250228-082243
base:   2014c95afecee3e76ca4a56956a936e23283f05b
patch link:    https://lore.kernel.org/r/2-v2-a3b72fd4b99a%2B1b6-iommu_virtio_domains_jgg%40nvidia.com
patch subject: [PATCH v2 2/5] iommu: Add domain_alloc_identity()
config: x86_64-randconfig-004-20250302 (https://download.01.org/0day-ci/archive/20250302/202503021205.KTYFNoX2-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250302/202503021205.KTYFNoX2-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/202503021205.KTYFNoX2-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/iommu/virtio-iommu.c: In function 'viommu_probe':
>> drivers/iommu/virtio-iommu.c:1228:34: error: assignment of member 'pgsize_bitmap' in read-only object
    1228 |         viommu_ops.pgsize_bitmap = viommu->pgsize_bitmap;
         |                                  ^
   drivers/iommu/virtio-iommu.c: At top level:
   drivers/iommu/virtio-iommu.c:817:29: warning: 'viommu_identity_domain' defined but not used [-Wunused-variable]
     817 | static struct viommu_domain viommu_identity_domain = {
         |                             ^~~~~~~~~~~~~~~~~~~~~~


vim +/pgsize_bitmap +1228 drivers/iommu/virtio-iommu.c

edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1153  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1154  static int viommu_probe(struct virtio_device *vdev)
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1155  {
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1156  	struct device *parent_dev = vdev->dev.parent;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1157  	struct viommu_dev *viommu = NULL;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1158  	struct device *dev = &vdev->dev;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1159  	u64 input_start = 0;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1160  	u64 input_end = -1UL;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1161  	int ret;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1162  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1163  	if (!virtio_has_feature(vdev, VIRTIO_F_VERSION_1) ||
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1164  	    !virtio_has_feature(vdev, VIRTIO_IOMMU_F_MAP_UNMAP))
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1165  		return -ENODEV;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1166  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1167  	viommu = devm_kzalloc(dev, sizeof(*viommu), GFP_KERNEL);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1168  	if (!viommu)
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1169  		return -ENOMEM;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1170  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1171  	spin_lock_init(&viommu->request_lock);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1172  	ida_init(&viommu->domain_ids);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1173  	viommu->dev = dev;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1174  	viommu->vdev = vdev;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1175  	INIT_LIST_HEAD(&viommu->requests);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1176  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1177  	ret = viommu_init_vqs(viommu);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1178  	if (ret)
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1179  		return ret;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1180  
d83c67c4a669a4 Michael S. Tsirkin    2020-08-05  1181  	virtio_cread_le(vdev, struct virtio_iommu_config, page_size_mask,
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1182  			&viommu->pgsize_bitmap);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1183  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1184  	if (!viommu->pgsize_bitmap) {
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1185  		ret = -EINVAL;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1186  		goto err_free_vqs;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1187  	}
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1188  
ae24fb49d01103 Jean-Philippe Brucker 2019-07-22  1189  	viommu->map_flags = VIRTIO_IOMMU_MAP_F_READ | VIRTIO_IOMMU_MAP_F_WRITE;
ae24fb49d01103 Jean-Philippe Brucker 2019-07-22  1190  	viommu->last_domain = ~0U;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1191  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1192  	/* Optional features */
d83c67c4a669a4 Michael S. Tsirkin    2020-08-05  1193  	virtio_cread_le_feature(vdev, VIRTIO_IOMMU_F_INPUT_RANGE,
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1194  				struct virtio_iommu_config, input_range.start,
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1195  				&input_start);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1196  
d83c67c4a669a4 Michael S. Tsirkin    2020-08-05  1197  	virtio_cread_le_feature(vdev, VIRTIO_IOMMU_F_INPUT_RANGE,
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1198  				struct virtio_iommu_config, input_range.end,
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1199  				&input_end);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1200  
d83c67c4a669a4 Michael S. Tsirkin    2020-08-05  1201  	virtio_cread_le_feature(vdev, VIRTIO_IOMMU_F_DOMAIN_RANGE,
ae24fb49d01103 Jean-Philippe Brucker 2019-07-22  1202  				struct virtio_iommu_config, domain_range.start,
ae24fb49d01103 Jean-Philippe Brucker 2019-07-22  1203  				&viommu->first_domain);
ae24fb49d01103 Jean-Philippe Brucker 2019-07-22  1204  
d83c67c4a669a4 Michael S. Tsirkin    2020-08-05  1205  	virtio_cread_le_feature(vdev, VIRTIO_IOMMU_F_DOMAIN_RANGE,
ae24fb49d01103 Jean-Philippe Brucker 2019-07-22  1206  				struct virtio_iommu_config, domain_range.end,
ae24fb49d01103 Jean-Philippe Brucker 2019-07-22  1207  				&viommu->last_domain);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1208  
d83c67c4a669a4 Michael S. Tsirkin    2020-08-05  1209  	virtio_cread_le_feature(vdev, VIRTIO_IOMMU_F_PROBE,
2a5a314874450d Jean-Philippe Brucker 2019-01-15  1210  				struct virtio_iommu_config, probe_size,
2a5a314874450d Jean-Philippe Brucker 2019-01-15  1211  				&viommu->probe_size);
2a5a314874450d Jean-Philippe Brucker 2019-01-15  1212  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1213  	viommu->geometry = (struct iommu_domain_geometry) {
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1214  		.aperture_start	= input_start,
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1215  		.aperture_end	= input_end,
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1216  		.force_aperture	= true,
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1217  	};
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1218  
ae24fb49d01103 Jean-Philippe Brucker 2019-07-22  1219  	if (virtio_has_feature(vdev, VIRTIO_IOMMU_F_MMIO))
ae24fb49d01103 Jean-Philippe Brucker 2019-07-22  1220  		viommu->map_flags |= VIRTIO_IOMMU_MAP_F_MMIO;
ae24fb49d01103 Jean-Philippe Brucker 2019-07-22  1221  
b7da58138e8b46 Jason Gunthorpe       2025-02-27  1222  	/* Reserve an ID to use as the bypass domain */
b7da58138e8b46 Jason Gunthorpe       2025-02-27  1223  	if (virtio_has_feature(viommu->vdev, VIRTIO_IOMMU_F_BYPASS_CONFIG)) {
b7da58138e8b46 Jason Gunthorpe       2025-02-27  1224  		viommu->identity_domain_id = viommu->first_domain;
b7da58138e8b46 Jason Gunthorpe       2025-02-27  1225  		viommu->first_domain++;
b7da58138e8b46 Jason Gunthorpe       2025-02-27  1226  	}
b7da58138e8b46 Jason Gunthorpe       2025-02-27  1227  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15 @1228  	viommu_ops.pgsize_bitmap = viommu->pgsize_bitmap;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1229  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1230  	virtio_device_ready(vdev);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1231  
169a126c6e88a9 Jean-Philippe Brucker 2019-01-15  1232  	/* Populate the event queue with buffers */
169a126c6e88a9 Jean-Philippe Brucker 2019-01-15  1233  	ret = viommu_fill_evtq(viommu);
169a126c6e88a9 Jean-Philippe Brucker 2019-01-15  1234  	if (ret)
169a126c6e88a9 Jean-Philippe Brucker 2019-01-15  1235  		goto err_free_vqs;
169a126c6e88a9 Jean-Philippe Brucker 2019-01-15  1236  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1237  	ret = iommu_device_sysfs_add(&viommu->iommu, dev, NULL, "%s",
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1238  				     virtio_bus_name(vdev));
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1239  	if (ret)
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1240  		goto err_free_vqs;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1241  
2d471b20c55e13 Robin Murphy          2021-04-01  1242  	iommu_device_register(&viommu->iommu, &viommu_ops, parent_dev);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1243  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1244  	vdev->priv = viommu;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1245  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1246  	dev_info(dev, "input address: %u bits\n",
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1247  		 order_base_2(viommu->geometry.aperture_end));
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1248  	dev_info(dev, "page mask: %#llx\n", viommu->pgsize_bitmap);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1249  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1250  	return 0;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1251  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1252  err_free_vqs:
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1253  	vdev->config->del_vqs(vdev);
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1254  
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1255  	return ret;
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1256  }
edcd69ab9a323b Jean-Philippe Brucker 2019-01-15  1257  

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

  parent reply	other threads:[~2025-03-02  5:33 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-28  0:19 [PATCH v2 0/5] Convert virtio-iommu to domain_alloc_paging() Jason Gunthorpe
2025-02-28  0:19 ` [PATCH v2 1/5] iommu/virtio: Break out bypass identity support into a global static Jason Gunthorpe
2025-03-03 15:22   ` Jean-Philippe Brucker
2025-02-28  0:20 ` [PATCH v2 2/5] iommu: Add domain_alloc_identity() Jason Gunthorpe
2025-02-28  1:59   ` Baolu Lu
2025-02-28 14:31     ` Jason Gunthorpe
2025-03-02  4:38   ` kernel test robot
2025-03-02  5:33   ` kernel test robot [this message]
2025-02-28  0:20 ` [PATCH v2 3/5] iommu/virtio: Move to domain_alloc_paging() Jason Gunthorpe
2025-03-03 15:21   ` Jean-Philippe Brucker
2025-03-03 17:02     ` Jason Gunthorpe
2025-02-28  0:20 ` [PATCH v2 4/5] iommu: Do not call domain_alloc() in iommu_sva_domain_alloc() Jason Gunthorpe
2025-02-28  2:03   ` Baolu Lu
2025-02-28  0:20 ` [PATCH v2 5/5] iommu: Hide ops.domain_alloc behind CONFIG_FSL_PAMU Jason Gunthorpe
2025-02-28  2:04   ` Baolu Lu

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=202503021205.KTYFNoX2-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=jgg@nvidia.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    /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.