lkml.org 
[lkml]   [2022]   [Jan]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v1 5/8] iommu/amd: Use iommu_attach/detach_device()
From
Date
Hi Jason,

On 1/6/22 10:33 PM, Jason Gunthorpe wrote:
> On Thu, Jan 06, 2022 at 10:20:50AM +0800, Lu Baolu wrote:
>> The individual device driver should use iommu_attach/detach_device()
>> for domain attachment/detachment.
>>
>> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
>> drivers/iommu/amd/iommu_v2.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/iommu/amd/iommu_v2.c b/drivers/iommu/amd/iommu_v2.c
>> index 58da08cc3d01..7d9d0fe89064 100644
>> +++ b/drivers/iommu/amd/iommu_v2.c
>> @@ -133,7 +133,7 @@ static void free_device_state(struct device_state *dev_state)
>> if (WARN_ON(!group))
>> return;
>>
>> - iommu_detach_group(dev_state->domain, group);
>> + iommu_detach_device(dev_state->domain, &dev_state->pdev->dev);
>>
>> iommu_group_put(group);
>
> This is the only user of the group in the function all the
> group_get/put should be deleted too.
>
> Joerg said in commit 55c99a4dc50f ("iommu/amd: Use
> iommu_attach_group()") that the device API doesn't work here because
> there are multi-device groups?
>
> But I'm not sure how this can work with multi-device groups - this
> seems to assigns a domain setup for direct map, so perhaps this only
> works if all devices are setup for direct map?

It's also difficult for me to understand how this can work with multi-
device group. The iommu_attach_group() returns -EBUSY if _init_device()
is called for the second device in the group. That's the reason why I
didn't set no_kernel_dma.

>
>> @@ -791,7 +791,7 @@ int amd_iommu_init_device(struct pci_dev *pdev, int pasids)
>> goto out_free_domain;
>> }
>>
>> - ret = iommu_attach_group(dev_state->domain, group);
>> + ret = iommu_attach_device(dev_state->domain, &pdev->dev);
>> if (ret != 0)
>> goto out_drop_group;
>
> Same comment here

Yes.

>
> Jason
>

Best regards,
baolu

\
 
 \ /
  Last update: 2022-01-07 01:24    [W:0.077 / U:0.492 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site