Linus Torvalds
48552153cf
Merge tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd
...
Pull iommufd updates from Jason Gunthorpe:
"Two significant new items:
- Allow reporting IOMMU HW events to userspace when the events are
clearly linked to a device.
This is linked to the VIOMMU object and is intended to be used by a
VMM to forward HW events to the virtual machine as part of
emulating a vIOMMU. ARM SMMUv3 is the first driver to use this
mechanism. Like the existing fault events the data is delivered
through a simple FD returning event records on read().
- PASID support in VFIO.
The "Process Address Space ID" is a PCI feature that allows the
device to tag all PCI DMA operations with an ID. The IOMMU will
then use the ID to select a unique translation for those DMAs. This
is part of Intel's vIOMMU support as VT-D HW requires the
hypervisor to manage each PASID entry.
The support is generic so any VFIO user could attach any
translation to a PASID, and the support should work on ARM SMMUv3
as well. AMD requires additional driver work.
Some minor updates, along with fixes:
- Prevent using nested parents with fault's, no driver support today
- Put a single "cookie_type" value in the iommu_domain to indicate
what owns the various opaque owner fields"
* tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd: (49 commits)
iommufd: Test attach before detaching pasid
iommufd: Fix iommu_vevent_header tables markup
iommu: Convert unreachable() to BUG()
iommufd: Balance veventq->num_events inc/dec
iommufd: Initialize the flags of vevent in iommufd_viommu_report_event()
iommufd/selftest: Add coverage for reporting max_pasid_log2 via IOMMU_HW_INFO
iommufd: Extend IOMMU_GET_HW_INFO to report PASID capability
vfio: VFIO_DEVICE_[AT|DE]TACH_IOMMUFD_PT support pasid
vfio-iommufd: Support pasid [at|de]tach for physical VFIO devices
ida: Add ida_find_first_range()
iommufd/selftest: Add coverage for iommufd pasid attach/detach
iommufd/selftest: Add test ops to test pasid attach/detach
iommufd/selftest: Add a helper to get test device
iommufd/selftest: Add set_dev_pasid in mock iommu
iommufd: Allow allocating PASID-compatible domain
iommu/vt-d: Add IOMMU_HWPT_ALLOC_PASID support
iommufd: Enforce PASID-compatible domain for RID
iommufd: Support pasid attach/replace
iommufd: Enforce PASID-compatible domain in PASID path
iommufd/device: Add pasid_attach array to track per-PASID attach
...
2025-04-01 18:03:46 -07:00
..
2025-03-26 09:32:10 -07:00
2025-03-13 13:17:41 -07:00
2025-04-01 11:02:03 -07:00
2025-02-27 12:38:23 +05:30
2025-03-27 09:05:55 -07:00
2025-03-06 09:25:06 +01:00
2025-02-20 22:54:28 +01:00
2025-02-22 12:23:49 +00:00
2025-03-21 12:52:15 -06:00
2025-03-04 15:46:59 +01:00
2025-03-26 20:58:24 -05:00
2025-03-29 14:48:33 -07:00
2025-03-29 11:12:28 -07:00
2025-03-11 18:08:26 +01:00
2025-03-26 10:28:36 -07:00
2025-03-21 20:57:55 -03:00
2025-03-25 14:22:07 -07:00
2025-03-10 12:58:07 +05:30
2025-02-28 00:03:17 +01:00
2025-03-29 16:59:16 -07:00
2025-03-29 18:11:12 -07:00
2025-02-27 16:52:41 -08:00
2025-02-24 15:26:08 +00:00
2025-03-25 10:33:23 -07:00
2025-02-18 17:59:11 +01:00
2025-03-10 12:31:19 +05:30
2025-03-13 14:15:54 +00:00
2025-02-19 16:45:24 -05:00
2025-02-21 16:45:21 -08:00
2025-02-18 11:08:36 +01:00
2025-02-21 17:31:45 -06:00
2025-02-21 09:54:01 +01:00
2025-02-17 15:42:04 +00:00
2025-03-27 09:05:55 -07:00
2025-03-15 15:08:53 +08:00
2025-03-06 08:04:52 -07:00
2025-02-24 11:30:16 -08:00
2025-03-03 11:17:52 -07:00
2025-03-03 11:17:52 -07:00
2025-03-17 22:06:45 -07:00
2025-02-18 11:51:21 -05:00
2025-03-05 12:00:03 -05:00
2025-03-26 18:08:55 -07:00
2025-03-26 18:08:55 -07:00
2025-03-16 22:06:27 -07:00
2025-03-19 08:03:06 -07:00
2025-03-15 11:48:25 -07:00
2025-03-30 13:45:28 -07:00
2025-04-01 09:29:18 -07:00
2025-03-08 14:37:39 +01:00
2025-03-01 02:54:18 -05:00
2025-03-07 22:03:09 -06:00
2025-02-26 12:10:48 +01:00
2025-03-24 16:49:40 -07:00
2025-03-20 06:53:02 -10:00
2025-03-28 11:22:54 -07:00
2025-03-16 22:06:30 -07:00
2025-03-17 22:07:06 -07:00
2025-04-01 09:29:18 -07:00
2025-03-16 22:05:52 -07:00
2025-03-16 22:05:52 -07:00
2025-04-01 09:29:18 -07:00
2025-02-27 14:52:37 +01:00
2025-03-11 12:51:21 +01:00
2025-03-10 10:40:25 +00:00
2025-03-10 18:00:49 +09:00
2025-02-26 19:51:37 -08:00
2025-03-16 23:24:15 -07:00
2025-03-25 15:00:18 -07:00
2025-03-17 00:05:41 -07:00
2025-03-20 17:33:31 -04:00
2025-03-17 11:23:43 +01:00
2025-03-16 22:30:47 -07:00
2025-03-10 09:29:29 -07:00
2025-03-02 12:57:37 +01:00
2025-03-21 17:39:06 +08:00
2025-03-21 22:03:15 -07:00
2025-03-17 22:06:41 -07:00
2025-03-26 21:02:05 -07:00
2025-04-01 11:02:03 -07:00
2025-03-11 15:24:09 +00:00
2025-03-11 02:32:00 +05:30
2025-02-26 11:14:40 +01:00
2025-03-25 15:00:18 -07:00
2025-02-24 12:08:51 +02:00
2025-03-18 09:03:11 +01:00
2025-02-20 10:18:37 +01:00
2025-03-10 09:11:08 -04:00
2025-03-16 22:06:11 -07:00
2025-03-20 09:45:39 +01:00
2025-03-30 12:43:03 -07:00
2025-03-16 22:06:32 -07:00
2025-03-27 13:27:08 -07:00
2025-03-05 12:57:15 +01:00
2025-03-24 09:34:10 -07:00
2025-03-04 11:27:23 -05:00
2025-03-06 15:13:13 -04:00
2025-02-26 13:15:57 -06:00
2025-03-15 11:18:19 -07:00
2025-02-26 11:17:39 +01:00
2025-03-26 13:54:04 +01:00
2025-03-25 10:54:15 -07:00
2025-03-17 22:07:00 -07:00
2025-03-16 22:06:31 -07:00
2025-03-21 17:12:04 -05:00
2025-03-20 21:23:03 +00:00
2025-03-25 12:35:59 +01:00
2025-04-01 18:03:46 -07:00
2025-03-21 22:10:06 +01:00
2025-03-19 19:17:58 +01:00
2025-02-21 15:28:02 -08:00
2025-03-14 21:13:20 +01:00
2025-03-17 12:17:01 -07:00
2025-03-28 13:45:52 -07:00
2025-03-01 21:00:22 +01:00
2025-03-01 21:00:22 +01:00
2025-03-27 09:46:53 -07:00
2025-03-20 15:16:03 +01:00
2025-04-01 18:03:46 -07:00
2025-03-25 10:18:31 -03:00
2025-03-21 22:10:04 -07:00
2025-03-10 13:13:04 -07:00
2025-02-20 15:19:26 +01:00
2025-03-28 11:22:54 -07:00
2025-03-18 00:15:25 -04:00
2025-03-10 11:54:45 +01:00
2025-04-01 10:06:52 -07:00
2025-03-22 15:36:49 +02:00
2025-03-08 12:13:25 +01:00
2025-03-20 13:13:00 -04:00
2025-03-19 07:31:43 -07:00
2025-03-16 22:30:49 -07:00
2025-02-27 09:29:33 -08:00
2025-02-27 09:29:33 -08:00
2025-03-05 21:36:16 -08:00
2025-03-28 12:37:13 -07:00
2025-03-30 12:43:03 -07:00
2025-03-08 16:23:22 +08:00
2025-03-26 20:58:25 -05:00
2025-03-26 20:58:25 -05:00
2025-02-20 15:24:13 +01:00
2025-03-11 15:24:09 +00:00
2025-03-17 22:06:53 -07:00
2025-03-21 22:03:12 -07:00
2025-03-17 22:07:02 -07:00
2025-03-17 22:06:40 -07:00
2025-04-01 09:29:18 -07:00
2025-03-16 23:24:14 -07:00
2025-04-01 09:29:18 -07:00
2025-04-01 09:29:18 -07:00
2025-03-16 22:06:19 -07:00
2025-03-17 00:05:30 -07:00
2025-04-01 09:29:18 -07:00
2025-03-19 11:17:03 +01:00
2025-03-31 13:37:22 -07:00
2025-03-28 11:22:54 -07:00
2025-03-21 22:10:04 -07:00
2025-03-17 13:54:50 +00:00
2025-03-25 10:06:49 -07:00
2025-03-19 19:17:58 +01:00
2025-02-25 15:07:24 -05:00
2025-03-05 11:52:50 +01:00
2025-03-06 12:05:33 +01:00
2025-03-20 16:53:53 -07:00
2025-03-20 16:53:54 -07:00
2025-02-18 07:13:26 -08:00
2025-03-26 18:08:55 -07:00
2025-02-18 11:51:22 -05:00
2025-03-29 11:23:16 -07:00
2025-03-17 00:05:36 -07:00
2025-03-17 22:06:57 -07:00
2025-04-01 09:29:18 -07:00
2025-04-01 09:29:18 -07:00
2025-03-06 15:13:13 -04:00
2025-03-16 22:05:53 -07:00
2025-03-04 17:00:12 -06:00
2025-03-28 19:36:53 -07:00
2025-03-28 10:07:23 -03:00
2025-03-27 13:14:46 -05:00
2025-03-08 15:08:45 -06:00
2025-03-27 13:14:45 -05:00
2025-03-06 08:55:54 +00:00
2025-04-01 09:29:18 -07:00
2025-03-17 11:23:36 +01:00
2025-03-25 15:44:19 -07:00
2025-03-16 22:06:03 -07:00
2025-04-01 09:29:18 -07:00
2025-03-25 14:35:31 -07:00
2025-03-25 07:58:04 -07:00
2025-03-05 13:26:12 +01:00
2025-03-10 08:53:40 +01:00
2025-03-11 18:41:27 +01:00
2025-03-12 21:28:48 +01:00
2025-03-03 14:35:07 +01:00
2025-03-03 13:29:21 +01:00
2025-03-12 21:02:50 +01:00
2025-03-12 20:41:14 +01:00
2025-03-10 09:11:04 -04:00
2025-03-05 12:43:54 +00:00
2025-03-13 12:07:18 +01:00
2025-03-08 01:42:34 +01:00
2025-03-04 17:11:17 -08:00
2025-02-21 10:46:49 +01:00
2025-03-24 22:06:11 -07:00
2025-03-04 18:44:29 -08:00
2025-03-16 17:40:22 -07:00
2025-02-28 23:56:07 +01:00
2025-03-04 18:44:29 -08:00
2025-03-24 19:41:37 -07:00
2025-03-24 19:41:37 -07:00
2025-03-16 22:06:18 -07:00
2025-03-16 23:24:14 -07:00
2025-03-16 22:06:19 -07:00
2025-02-27 13:09:11 +00:00
2025-03-12 12:23:00 +01:00
2025-03-12 12:24:54 +01:00
2025-03-16 23:24:15 -07:00
2025-03-28 08:39:27 -04:00
2025-03-17 22:06:48 -07:00
2025-03-24 17:27:39 -04:00
2025-03-21 17:33:38 +08:00
2025-04-01 10:06:52 -07:00
2025-02-25 15:18:45 +01:00
2025-03-30 12:43:03 -07:00
2025-03-04 11:17:33 +01:00
2025-03-25 12:48:05 -04:00
2025-04-01 09:29:18 -07:00
2025-02-25 18:15:43 -08:00
2025-03-09 20:52:46 +01:00
2025-03-04 18:47:32 -08:00
2025-03-19 18:06:32 +01:00
2025-03-03 09:35:50 -08:00
2025-03-03 09:35:50 -08:00
2025-03-16 17:40:24 -07:00
2025-04-01 09:29:18 -07:00
2025-03-16 22:05:58 -07:00
2025-03-24 09:34:10 -07:00
2025-03-24 09:55:18 -07:00
2025-03-25 20:52:04 +01:00
2025-02-28 11:51:26 -08:00
2025-02-21 09:54:03 +01:00
2025-03-25 13:16:16 -07:00
2025-03-27 15:34:05 +02:00
2025-03-06 13:35:26 -05:00
2025-04-01 10:06:52 -07:00
2025-02-28 11:51:26 -08:00
2025-02-28 11:51:31 -08:00
2025-03-25 09:15:07 -07:00
2025-02-28 11:51:26 -08:00
2025-03-06 12:22:45 +01:00
2025-03-16 22:30:50 -07:00
2025-02-17 14:27:35 +01:00
2025-02-21 09:54:01 +01:00
2025-03-25 10:18:31 -03:00
2025-02-21 10:23:53 +01:00
2025-04-01 09:29:18 -07:00
2025-04-01 09:29:18 -07:00
2025-03-26 18:08:55 -07:00
2025-04-01 09:29:18 -07:00
2025-03-17 22:07:01 -07:00
2025-03-17 00:05:41 -07:00
2025-03-17 00:05:41 -07:00
2025-03-13 13:25:58 -07:00
2025-03-13 13:25:58 -07:00
2025-03-13 13:25:58 -07:00
2025-03-17 22:06:50 -07:00