On Thu, Feb 27, 2025 at 09:46:55AM -0800, Nicolin Chen wrote:
> I found a bit confusing to use "owner" as the domain->owner isn't
> the same thing in this context. Maybe it should be "driver_ops"?

Maybe, but I wouldn't churn it

> Then, "owner" could be another op structure that holds the owner-
> specific things, such as:
>       enum iommu_domain_owner { DMA/VFIO/IOMMUFD}; // or flag?

I was thinking about breaking type into something like this:

u32 private_data_owner:2 // DMA/IOMMUFD/None
u32 translation_type:3   // paging/identity/sva/platform/blocked/nested
u32 dma_fq:1             // true/false
u32 dma_api_domain:1     // true/false

Which is close to how it already is with just some breaking up of the
bits differently.. Get rid of the word unmanaged and drop the
IOMMU_DOMAIN_* defines.

I also wanted to separate the "policy" enum that determines which of
the three default domains you get from the type. Lots of type
combinations are not allowed as policy.

Jason

Reply via email to