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;
> +};
> +


Reply via email to