Re: [PATCH v2 5/5] vfio/iommu_type1: Simplify group attachment

Robin Murphy
2022-06-20T10:11:14Z

On 2022-06-17 03:53, Tian, Kevin wrote:
>> From: Nicolin Chen <nicolinc@nvidia.com>
>> Sent: Friday, June 17, 2022 6:41 AM
>>
>>> ...
>>>> - if (resv_msi) {
>>>> + if (resv_msi && !domain->msi_cookie) {
>>>> ret = iommu_get_msi_cookie(domain->domain,
>>>> resv_msi_base);
>>>> if (ret && ret != -ENODEV)
>>>> goto out_detach;
>>>> + domain->msi_cookie = true;
>>>> }
>>>
>>> why not moving to alloc_attach_domain() then no need for the new
>>> domain field? It's required only when a new domain is allocated.
>>
>> When reusing an existing domain that doesn't have an msi_cookie,
>> we can do iommu_get_msi_cookie() if resv_msi is found. So it is
>> not limited to a new domain.
>
> Looks msi_cookie requirement is per platform (currently only
> for smmu. see arm_smmu_get_resv_regions()). If there is
> no mixed case then above check is not required.
>
> But let's hear whether Robin has a different thought here.

Yes, the cookie should logically be tied to the lifetime of the domain
itself. In the relevant context, "an existing domain that doesn't have
an msi_cookie" should never exist.

Thanks,
Robin.