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?

> +
> +     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