On 01/03/2018 11:33, Liu, Yi L wrote:
> +struct VTDDeviceNode {
> + PCIBus *bus;
> + uint8_t devfn;
> + QLIST_ENTRY(VTDDeviceNode) next;
> +};
Do you really need VTDDeviceNode? I think can you simply put the
QLIST_ENTRY in VTDAddressSpace (named e.g. next_by_pasid), since
VTDAddressSpace already includes a (bus, devfn).
Thanks,
Paolo
> +struct VTDPASIDAddressSpace {
> + AddressSpace as;
> + IOMMUSVAContext sva_ctx;
> + IntelIOMMUState *iommu_state;
> + /* list of devices binded to a pasid tagged address space */
> + QLIST_HEAD(, VTDDeviceNode) device_list;
> +};
> +