Files
linux-bredos/include/uapi/linux
Nicolin Chen 0ce5c2477a iommufd/viommu: Add IOMMUFD_OBJ_VDEVICE and IOMMU_VDEVICE_ALLOC ioctl
Introduce a new IOMMUFD_OBJ_VDEVICE to represent a physical device (struct
device) against a vIOMMU (struct iommufd_viommu) object in a VM.

This vDEVICE object (and its structure) holds all the infos and attributes
in the VM, regarding the device related to the vIOMMU.

As an initial patch, add a per-vIOMMU virtual ID. This can be:
 - Virtual StreamID on a nested ARM SMMUv3, an index to a Stream Table
 - Virtual DeviceID on a nested AMD IOMMU, an index to a Device Table
 - Virtual RID on a nested Intel VT-D IOMMU, an index to a Context Table
Potentially, this vDEVICE structure would hold some vData for Confidential
Compute Architecture (CCA). Use this virtual ID to index an "vdevs" xarray
that belongs to a vIOMMU object.

Add a new ioctl for vDEVICE allocations. Since a vDEVICE is a connection
of a device object and an iommufd_viommu object, take two refcounts in the
ioctl handler.

Link: https://patch.msgid.link/r/cda8fd2263166e61b8191a3b3207e0d2b08545bf.1730836308.git.nicolinc@nvidia.com
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
2024-11-12 11:46:18 -04:00
..
2024-07-31 13:56:00 +02:00
2024-04-15 13:42:38 +02:00
2024-08-20 14:02:22 -04:00
2024-08-28 06:53:58 -07:00
2024-08-28 06:53:58 -07:00
2023-01-20 09:33:22 +00:00
2024-04-08 14:10:45 +01:00
2024-06-11 12:57:49 -05:00
2023-03-16 21:20:32 -07:00
2024-09-04 16:51:11 +02:00
2023-09-21 19:22:05 +02:00
2024-05-07 01:35:57 +02:00
2024-08-29 10:39:37 +02:00
2024-05-07 01:35:57 +02:00
2024-04-01 10:49:28 +01:00
2024-08-26 09:37:23 -07:00
2024-08-26 09:37:23 -07:00
2024-06-01 07:28:21 +02:00
2024-09-01 20:26:05 -07:00
2024-09-16 23:50:52 +02:00
2024-08-19 22:36:26 -04:00
2023-12-15 17:01:30 +01:00
2024-09-06 08:31:40 -06:00
2024-09-11 20:44:32 -07:00
2024-08-12 17:50:34 -07:00
2023-11-28 19:05:16 +00:00
2024-09-19 14:25:26 -05:00
2023-12-20 19:26:31 -05:00
2022-11-17 11:04:23 -08:00
2023-06-05 09:36:35 +02:00
2024-02-28 18:47:08 -07:00
2023-12-29 11:58:24 -08:00
2023-03-23 17:25:46 +01:00