On 9/12/24 9:04 PM, Yi Liu wrote:
@@ -4299,7 +4304,12 @@ domain_prepare_dev_pasid(struct iommu_domain *domain,
unsigned long flags;
int ret;
- ret = prepare_domain_attach_device(domain, dev);
+ /* Nested type domain should prepare its parent domain */
+ if (domain_type_is_nested(dmar_domain))
+ ret = prepare_domain_attach_device(
+ &dmar_domain->s2_domain->domain, dev);
+ else
+ ret = prepare_domain_attach_device(domain, dev);
if (ret)
return ERR_PTR(ret);
'prepare' is a bit confusing in this context. It actually means checking
whether a domain is compatible with the hardware capabilities of RID or
PASID. Or not?
I know this confusion comes from the naming of
prepare_domain_attach_device(). Hence, do you mind renaming this helper
in a small patch?
Thanks,
baolu