Re: [PATCH v4 01/11] iommu/vt-d: debugfs: Remove device_domain_lock usage

Baolu Lu
2022-07-07T09:18:14Z

On 2022/7/7 16:30, Ethan Zhao wrote:
>> -static int show_device_domain_translation(struct device *dev, void *data)
>> +static int __show_device_domain_translation(struct device *dev, void *data)
>> {
>> - struct device_domain_info *info = dev_iommu_priv_get(dev);
>> - struct dmar_domain *domain = info->domain;
>> + struct dmar_domain *domain;
>> struct seq_file *m = data;
>> u64 path[6] = { 0 };
>>
>> + domain = to_dmar_domain(iommu_get_domain_for_dev(dev));
>> if (!domain)
>> return 0;
>>
>> @@ -359,20 +359,39 @@ static int show_device_domain_translation(struct device *dev, void *data)
>> pgtable_walk_level(m, domain->pgd, domain->agaw + 2, 0, path);
>> seq_putc(m, '\n');
>>
>> - return 0;
>> + /* Don't iterate */
>> + return 1;
>> }
>
> Using this return value trick to change the caller behaviour, seems not
> saving
>
> anything, but really cost me a few seconds more to know the
> *incantation* --
>
> 'Don't iterate' :) .

This is defined by iommu_group_for_each_dev(). Return value 0 means
continuing to next one, while non-zero means stopping iteration.

Best regards,
baolu