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
next prev 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.