Re: [PATCH v2] iommu/amd: Set translation valid bit only when IO page tables are in used

Robin Murphy
2022-05-20T09:18:31Z

On 2022-05-20 09:58, Joerg Roedel wrote:
> On Fri, May 20, 2022 at 09:54:51AM +0100, Robin Murphy wrote:
>> The .def_domain type op already allows drivers to do exactly this sort of
>> override. You could also conditionally reject IOMMU_DOMAIN_PASSTHROUGH in
>> .domain_alloc for good measure, provided that (for now at least*) SNP is a
>> global thing rather than per-instance.
>
> Yeah, that could work. I am just not sure the IOMMU core behaves well in
> all situations when allocation IOMMU_DOMAIN_PASSTHROUGH suddenly starts
> to fail. I would feel better if this is checked and tested :)

Well, iommu_group_alloc_default_domain() has the fallback and is
currently the only place that __iommu_domain_alloc() can be called with
a type other than IOMMU_DOMAIN_UNMANAGED, so by inspection it should be
fine. However if iommu_get_def_domain_type() says the right thing then
neither sysfs nor automatic default domains should get as far as even
trying to allocate an identity domain anyway - note that that's already
what happens for untrusted external devices. But either way should be
easy enough to verify with a quick hack, too.

Cheers,
Robin.