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.d...@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[] = {