Re: [PATCH v4 05/13] iommu/arm-smmu-v3: Use the master-owned s1_cfg

From: Nicolin Chen
Date: Wed Jul 12 2023 - 21:57:53 EST


On Wed, Jun 21, 2023 at 02:37:17PM +0800, Michael Shavit wrote:

> Insert CDs for STAGE_1 domains into a CD table owned by the
> arm_smmu_master. Remove the CD table that was owned by arm_smmu_domain.

> @@ -718,10 +718,7 @@ struct arm_smmu_domain {
>
> enum arm_smmu_domain_stage stage;
> union {
> - struct {
> struct arm_smmu_ctx_desc cd;
> - struct arm_smmu_s1_cfg s1_cfg;
> - };
> struct arm_smmu_s2_cfg s2_cfg;
> };

So the arm_smmu_domain looks like an object representing either:
1) a CD table + (if !IDENTITY) an S1 IOPT for default substream
2) an S2 IOPT

I wonder if we need something like struct arm_smmu_subdomain to
represent a substream, because now an IOMMU_DOMAIN_SVA domain is
represented by this struct arm_smmu_domain too, which is neither
of the two cases in the list above.

Thanks
Nicolin