>-----Original Message----- >From: Eric Auger <eric.au...@redhat.com> >Subject: Re: [PATCH rfcv2 12/20] intel_iommu: Introduce a new structure >VTDHostIOMMUDevice > > > > >On 2/19/25 9:22 AM, Zhenzhong Duan wrote: >> Introduce a new structure VTDHostIOMMUDevice which replaces >> HostIOMMUDevice to be stored in hash table. >> >> It includes a reference to HostIOMMUDevice and IntelIOMMUState, >> also includes BDF information which will be used in future >> patches. >> >> Signed-off-by: Zhenzhong Duan <zhenzhong.d...@intel.com> >> --- >> hw/i386/intel_iommu_internal.h | 7 +++++++ >> include/hw/i386/intel_iommu.h | 2 +- >> hw/i386/intel_iommu.c | 14 ++++++++++++-- >> 3 files changed, 20 insertions(+), 3 deletions(-) >> >> diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h >> index 2cda744786..18bc22fc72 100644 >> --- a/hw/i386/intel_iommu_internal.h >> +++ b/hw/i386/intel_iommu_internal.h >> @@ -28,6 +28,7 @@ >> #ifndef HW_I386_INTEL_IOMMU_INTERNAL_H >> #define HW_I386_INTEL_IOMMU_INTERNAL_H >> #include "hw/i386/intel_iommu.h" >> +#include "system/host_iommu_device.h" >> >> /* >> * Intel IOMMU register specification >> @@ -608,4 +609,10 @@ typedef struct VTDRootEntry VTDRootEntry; >> /* Bits to decide the offset for each level */ >> #define VTD_LEVEL_BITS 9 >> >> +typedef struct VTDHostIOMMUDevice { >> + IntelIOMMUState *iommu_state; >> + PCIBus *bus; >> + uint8_t devfn; >Just to make sure the parent > >HostIOMMUDevice has aliased_bus and aliased_devfn. Can you explain why do >you need both aliased and non aliased info? Virtual vtd only need non aliased bdf, it uses non aliased bdf to index HostIOMMUDevice to do attachment/detachment. I remember virtio-iommu need aliased bdf to rebuild reserved regions for aliased IOMMUDevice. Thanks Zhenzhong