diff mbox series

[rfcv2,07/18] vfio/container: Implement host_iommu_device_init callback in legacy mode

Message ID 20240201072818.327930-8-zhenzhong.duan@intel.com
State New
Headers show
Series Check and sync host IOMMU cap/ecap with vIOMMU | expand

Commit Message

Duan, Zhenzhong Feb. 1, 2024, 7:28 a.m. UTC
This callback will be used to initialize base and public elements
in IOMMULegacyDevice.

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
---
 hw/vfio/container.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Eric Auger Feb. 19, 2024, 5:13 p.m. UTC | #1
Hi Zhenzhong,
On 2/1/24 08:28, Zhenzhong Duan wrote:
> This callback will be used to initialize base and public elements
> in IOMMULegacyDevice.
>
> Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
> ---
>  hw/vfio/container.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/hw/vfio/container.c b/hw/vfio/container.c
> index bd25b9fbad..8fafd4b4e5 100644
> --- a/hw/vfio/container.c
> +++ b/hw/vfio/container.c
> @@ -1120,6 +1120,12 @@ out_single:
>      return ret;
>  }
>  
> +static void vfio_legacy_host_iommu_device_init(VFIODevice *vbasedev)
> +{
> +    host_iommu_base_device_init(&vbasedev->base_hdev, HID_LEGACY,
> +                                sizeof(IOMMULegacyDevice));
To me this should allocate a new

 IOMMULegacyDevice and set the VFIODevice base_hdev handle to its base @

Thanks

Eric

> +}
> +
>  static void vfio_iommu_legacy_class_init(ObjectClass *klass, void *data)
>  {
>      VFIOIOMMUClass *vioc = VFIO_IOMMU_CLASS(klass);
> @@ -1132,6 +1138,7 @@ static void vfio_iommu_legacy_class_init(ObjectClass *klass, void *data)
>      vioc->set_dirty_page_tracking = vfio_legacy_set_dirty_page_tracking;
>      vioc->query_dirty_bitmap = vfio_legacy_query_dirty_bitmap;
>      vioc->pci_hot_reset = vfio_legacy_pci_hot_reset;
> +    vioc->host_iommu_device_init = vfio_legacy_host_iommu_device_init;
>  };
>  
>  static const TypeInfo types[] = {
Duan, Zhenzhong Feb. 26, 2024, 6:56 a.m. UTC | #2
>-----Original Message-----
>From: Eric Auger <eric.auger@redhat.com>
>Subject: Re: [PATCH rfcv2 07/18] vfio/container: Implement
>host_iommu_device_init callback in legacy mode
>
>Hi Zhenzhong,
>On 2/1/24 08:28, Zhenzhong Duan wrote:
>> This callback will be used to initialize base and public elements
>> in IOMMULegacyDevice.
>>
>> Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
>> ---
>>  hw/vfio/container.c | 7 +++++++
>>  1 file changed, 7 insertions(+)
>>
>> diff --git a/hw/vfio/container.c b/hw/vfio/container.c
>> index bd25b9fbad..8fafd4b4e5 100644
>> --- a/hw/vfio/container.c
>> +++ b/hw/vfio/container.c
>> @@ -1120,6 +1120,12 @@ out_single:
>>      return ret;
>>  }
>>
>> +static void vfio_legacy_host_iommu_device_init(VFIODevice *vbasedev)
>> +{
>> +    host_iommu_base_device_init(&vbasedev->base_hdev, HID_LEGACY,
>> +                                sizeof(IOMMULegacyDevice));
>To me this should allocate a new
>
> IOMMULegacyDevice and set the VFIODevice base_hdev handle to its base

Sure, will do.

Thanks
Zhenzhong
diff mbox series

Patch

diff --git a/hw/vfio/container.c b/hw/vfio/container.c
index bd25b9fbad..8fafd4b4e5 100644
--- a/hw/vfio/container.c
+++ b/hw/vfio/container.c
@@ -1120,6 +1120,12 @@  out_single:
     return ret;
 }
 
+static void vfio_legacy_host_iommu_device_init(VFIODevice *vbasedev)
+{
+    host_iommu_base_device_init(&vbasedev->base_hdev, HID_LEGACY,
+                                sizeof(IOMMULegacyDevice));
+}
+
 static void vfio_iommu_legacy_class_init(ObjectClass *klass, void *data)
 {
     VFIOIOMMUClass *vioc = VFIO_IOMMU_CLASS(klass);
@@ -1132,6 +1138,7 @@  static void vfio_iommu_legacy_class_init(ObjectClass *klass, void *data)
     vioc->set_dirty_page_tracking = vfio_legacy_set_dirty_page_tracking;
     vioc->query_dirty_bitmap = vfio_legacy_query_dirty_bitmap;
     vioc->pci_hot_reset = vfio_legacy_pci_hot_reset;
+    vioc->host_iommu_device_init = vfio_legacy_host_iommu_device_init;
 };
 
 static const TypeInfo types[] = {