diff options
author | Joao Martins <joao.m.martins@oracle.com> | 2024-07-22 22:13:19 +0100 |
---|---|---|
committer | Cédric Le Goater <clg@redhat.com> | 2024-07-23 17:14:52 +0200 |
commit | 6c635326425091e164b563a7ce96408ef74ff2ec (patch) | |
tree | a1271a3483c277bd1095891769c0b4521ae0f50a /hw | |
parent | 5b1e96e654036a65d3edb2671281e1a30c6f5ce7 (diff) |
vfio/{iommufd,container}: Remove caps::aw_bits
Remove caps::aw_bits which requires the bcontainer::iova_ranges being
initialized after device is actually attached. Instead defer that to
.get_cap() and call vfio_device_get_aw_bits() directly.
This is in preparation for HostIOMMUDevice::realize() being called early
during attach_device().
Suggested-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Signed-off-by: Joao Martins <joao.m.martins@oracle.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/vfio/container.c | 5 | ||||
-rw-r--r-- | hw/vfio/iommufd.c | 1 |
2 files changed, 1 insertions, 5 deletions
diff --git a/hw/vfio/container.c b/hw/vfio/container.c index ce9a858e56..10cb4b4320 100644 --- a/hw/vfio/container.c +++ b/hw/vfio/container.c @@ -1141,7 +1141,6 @@ static bool hiod_legacy_vfio_realize(HostIOMMUDevice *hiod, void *opaque, VFIODevice *vdev = opaque; hiod->name = g_strdup(vdev->name); - hiod->caps.aw_bits = vfio_device_get_aw_bits(vdev); hiod->agent = opaque; return true; @@ -1150,11 +1149,9 @@ static bool hiod_legacy_vfio_realize(HostIOMMUDevice *hiod, void *opaque, static int hiod_legacy_vfio_get_cap(HostIOMMUDevice *hiod, int cap, Error **errp) { - HostIOMMUDeviceCaps *caps = &hiod->caps; - switch (cap) { case HOST_IOMMU_DEVICE_CAP_AW_BITS: - return caps->aw_bits; + return vfio_device_get_aw_bits(hiod->agent); default: error_setg(errp, "%s: unsupported capability %x", hiod->name, cap); return -EINVAL; diff --git a/hw/vfio/iommufd.c b/hw/vfio/iommufd.c index 58c11c9308..f1e7cf3e9c 100644 --- a/hw/vfio/iommufd.c +++ b/hw/vfio/iommufd.c @@ -725,7 +725,6 @@ static bool hiod_iommufd_vfio_realize(HostIOMMUDevice *hiod, void *opaque, hiod->name = g_strdup(vdev->name); caps->type = type; - caps->aw_bits = vfio_device_get_aw_bits(vdev); return true; } |