[RFCv2 PATCH 21/36] iommu/arm-smmu-v3: Implement process operations
Yisheng Xie
xieyisheng1 at huawei.com
Wed Nov 8 19:32:26 PST 2017
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
More information about the linux-arm-kernel
mailing list