Hi,

On 09/11/17 03:32, Yisheng Xie wrote:
> Hi Jean,
> 
> On 2017/10/6 21:31, Jean-Philippe Brucker wrote:
>> Hook process operations to support PASID and page table sharing with the
>> SMMUv3:
>>
>> +
>> +static void arm_smmu_process_exit(struct iommu_domain *domain,
>> +                              struct iommu_process *process)
>> +{
>> +    struct arm_smmu_master_data *master;
>> +    struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
>> +
>> +    if (!domain->process_exit)
>> +            return;
> 
> If domain do not set process_exit handler, just return? smmu do not
> need invalid ATC, clear cd entry, etc.? Maybe you should check when
> call domain->process_exit?

Indeed, that doesn't make sense. I'll move the check below.

Thanks,
Jean

>> +
>> +    spin_lock(&smmu_domain->devices_lock);
>> +    list_for_each_entry(master, &smmu_domain->devices, list) {
>> +            if (!master->processes)
>> +                    continue;
>> +
>> +            master->processes--;
> Add
>               if (domain->process_exit)
> here?
>> +            domain->process_exit(domain, master->dev, process->pasid,
>> +                                 domain->process_exit_token);
>> +
>> +            /* TODO: inval ATC */
>> +    }
>> +    spin_unlock(&smmu_domain->devices_lock);
>> +
>> +    arm_smmu_write_ctx_desc(smmu_domain, process->pasid, NULL);
>> +
>> +    /* TODO: Invalidate all mappings if not DVM */
>> +}
>> +
> Thanks
> Yisheng Xie
> 
> 

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to