>-----Original Message-----
>From: Eric Auger <eric.au...@redhat.com>
>Subject: Re: [PATCH rfcv2 04/20] vfio/iommufd: Implement
>HostIOMMUDeviceClass::realize_late() handler
>
>
>
>
>On 2/19/25 9:22 AM, Zhenzhong Duan wrote:
>> There are three iommufd related elements iommufd handle, devid and
>
>There are three iommufd specific members in HostIOMMUDevice
>IOMMUFD that need to be initialized after attach on realize_late() ...

Will do.

Thanks
Zhenzhong

>
>> hwpt_id. hwpt_id is ready only after VFIO device attachment. Device
>> id and iommufd handle are ready before attachment, but they are all
>> iommufd related stuff, initialize them together with hwpt_id.
>>
>> Signed-off-by: Zhenzhong Duan <zhenzhong.d...@intel.com>
>> ---
>>  hw/vfio/iommufd.c | 14 ++++++++++++++
>>  1 file changed, 14 insertions(+)
>>
>> diff --git a/hw/vfio/iommufd.c b/hw/vfio/iommufd.c
>> index df61edffc0..53639bf88b 100644
>> --- a/hw/vfio/iommufd.c
>> +++ b/hw/vfio/iommufd.c
>> @@ -828,6 +828,19 @@ static bool
>hiod_iommufd_vfio_realize(HostIOMMUDevice *hiod, void *opaque,
>>      return true;
>>  }
>>
>> +static bool hiod_iommufd_vfio_realize_late(HostIOMMUDevice *hiod, void
>*opaque,
>> +                                           Error **errp)
>> +{
>> +    VFIODevice *vdev = opaque;
>> +    HostIOMMUDeviceIOMMUFD *idev =
>HOST_IOMMU_DEVICE_IOMMUFD(hiod);
>> +
>> +    idev->iommufd = vdev->iommufd;
>> +    idev->devid = vdev->devid;
>> +    idev->hwpt_id = vdev->hwpt->hwpt_id;
>> +
>> +    return true;
>> +}
>> +
>>  static GList *
>>  hiod_iommufd_vfio_get_iova_ranges(HostIOMMUDevice *hiod)
>>  {
>> @@ -852,6 +865,7 @@ static void hiod_iommufd_vfio_class_init(ObjectClass
>*oc, void *data)
>>      HostIOMMUDeviceClass *hiodc = HOST_IOMMU_DEVICE_CLASS(oc);
>>
>>      hiodc->realize = hiod_iommufd_vfio_realize;
>> +    hiodc->realize_late = hiod_iommufd_vfio_realize_late;
>>      hiodc->get_iova_ranges = hiod_iommufd_vfio_get_iova_ranges;
>>      hiodc->get_page_size_mask = hiod_iommufd_vfio_get_page_size_mask;
>>  };

Reply via email to