58 lines
2.0 KiB
Diff
58 lines
2.0 KiB
Diff
|
|
From 72660b98e799248338588fe97f191c544c073806 Mon Sep 17 00:00:00 2001
|
||
|
|
From: Joao Martins <joao.m.martins@oracle.com>
|
||
|
|
Date: Mon, 22 Jul 2024 22:13:20 +0100
|
||
|
|
Subject: [PATCH] vfio/iommufd: Add hw_caps field to HostIOMMUDeviceCaps
|
||
|
|
MIME-Version: 1.0
|
||
|
|
Content-Type: text/plain; charset=UTF-8
|
||
|
|
Content-Transfer-Encoding: 8bit
|
||
|
|
|
||
|
|
Store the value of @caps returned by iommufd_backend_get_device_info()
|
||
|
|
in a new field HostIOMMUDeviceCaps::hw_caps. Right now the only value is
|
||
|
|
whether device IOMMU supports dirty tracking (IOMMU_HW_CAP_DIRTY_TRACKING).
|
||
|
|
|
||
|
|
This is in preparation for HostIOMMUDevice::realize() being called early
|
||
|
|
during attach_device().
|
||
|
|
|
||
|
|
Signed-off-by: Joao Martins <joao.m.martins@oracle.com>
|
||
|
|
Reviewed-by: Cédric Le Goater <clg@redhat.com>
|
||
|
|
Reviewed-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
|
||
|
|
Reviewed-by: Eric Auger <eric.auger@redhat.com>
|
||
|
|
---
|
||
|
|
hw/vfio/iommufd.c | 1 +
|
||
|
|
include/sysemu/host_iommu_device.h | 4 ++++
|
||
|
|
2 files changed, 5 insertions(+)
|
||
|
|
|
||
|
|
diff --git a/hw/vfio/iommufd.c b/hw/vfio/iommufd.c
|
||
|
|
index 06e6a400be..d9088705de 100644
|
||
|
|
--- a/hw/vfio/iommufd.c
|
||
|
|
+++ b/hw/vfio/iommufd.c
|
||
|
|
@@ -745,6 +745,7 @@ static bool hiod_iommufd_vfio_realize(HostIOMMUDevice *hiod, void *opaque,
|
||
|
|
|
||
|
|
hiod->name = g_strdup(vdev->name);
|
||
|
|
caps->type = type;
|
||
|
|
+ caps->hw_caps = hw_caps;
|
||
|
|
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
diff --git a/include/sysemu/host_iommu_device.h b/include/sysemu/host_iommu_device.h
|
||
|
|
index f586908945..e4d8300350 100644
|
||
|
|
--- a/include/sysemu/host_iommu_device.h
|
||
|
|
+++ b/include/sysemu/host_iommu_device.h
|
||
|
|
@@ -19,9 +19,13 @@
|
||
|
|
* struct HostIOMMUDeviceCaps - Define host IOMMU device capabilities.
|
||
|
|
*
|
||
|
|
* @type: host platform IOMMU type.
|
||
|
|
+ *
|
||
|
|
+ * @hw_caps: host platform IOMMU capabilities (e.g. on IOMMUFD this represents
|
||
|
|
+ * the @out_capabilities value returned from IOMMU_GET_HW_INFO ioctl)
|
||
|
|
*/
|
||
|
|
typedef struct HostIOMMUDeviceCaps {
|
||
|
|
uint32_t type;
|
||
|
|
+ uint64_t hw_caps;
|
||
|
|
} HostIOMMUDeviceCaps;
|
||
|
|
|
||
|
|
#define TYPE_HOST_IOMMU_DEVICE "host-iommu-device"
|
||
|
|
--
|
||
|
|
2.41.0.windows.1
|
||
|
|
|