From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D731DC47DDB for ; Thu, 1 Feb 2024 11:34:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=1CfxpiEwbO+dVYds8LOgqKJstj8XDgk7dUbr6PW4RLs=; b=0lmADv42ZNbkja 3oDFGG7xp02dRT3inuvzUxIavbC7qnCGKNYvL8EvsGePpAsgsFxVKqcU/Swqv5R+AkpWh9WLjufw6 bfRlz+H3UWwPxno3NwltPSDJJH70EU1FJU2+kOry/q1WPqnYb9wnBHpFEC56QCwSI8DK26FbMYt0A 8lJlq5Fe7pAVDb+IUU2SmJbEVpQaoR66WQq1QKIuOFvPr+DatI+e9bCHbvKyysIl3vmOi61Eo/p8c uS/wGjOoYbJGgDOI+84D3fJ8xtT84sZuNg1IQ5jLf8svqwSvNhJd5Wom4uLtdoDiss2kB548hM90R IGQGRkp0rLNItBpPyb/w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rVVL2-00000007bTv-42dV; Thu, 01 Feb 2024 11:34:36 +0000 Received: from mail-ed1-x530.google.com ([2a00:1450:4864:20::530]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rVVL0-00000007bSX-0cJ8 for linux-arm-kernel@lists.infradead.org; Thu, 01 Feb 2024 11:34:35 +0000 Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-55f63fd3dd8so10753a12.0 for ; Thu, 01 Feb 2024 03:34:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1706787271; x=1707392071; darn=lists.infradead.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=cwdhwoJv0upsGTffobk3GyaXqxANI4HVSiNrgLd7H9g=; b=mChRmcOjLovYpPq97nR3aIsgeTzOEpB4q5DO6NITdjLOMztL0TJalV7YLoLoQZ6gLi FLnWyG3Eylu//tlhP8Bn7egircOH2FyKQspQDN1hKEH69FdV1Dk4jcficaGoUvO7yGrW 27qbDIePprrwdEr689rJlCYiZWuIT5NERHLMVizRMuwmVxVsA+NQCOzd+iGyptQuqNWj ogwAbG+WHHCG3GbCAa5X7pzMPGdELmr/avU336Muxh9KYTPdOZwP31h+jKWWXfD3YE/C 6ZIQUgk1kJjABzNi2F1TAwHNyUriURkY2UTK0ZMSmBBcXOEIiYhYwVaanzr5rEFQ0DMQ P+pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706787271; x=1707392071; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=cwdhwoJv0upsGTffobk3GyaXqxANI4HVSiNrgLd7H9g=; b=fx+XdW3RvuwRk9bJuBvmLG8AWpmbroBeV1SVjhGq1gJkRgD6UKthANGEnlBtv9xzC5 B+sotcGdjB0qf/+Xax0ORpiuhflC2ef18U8vzQXQp7x6TO9V1Jrkfvufg6oBpEeub0x1 oQx27FqYeXPwHsqLjd4uqTdg7ey9d/+zYOrFPWt3uveN5KNMimQiNUd3PcZEQDsYiCMC BeBbj9OR272EBMKU8rvGeysZcVP1+6GujD/BkIYLHWRK/Sd+S15FC9xLnIXdENr2PAmZ f/i3DBbOPjQ63YrY6mo+9a0IoMJWfW6Eo2EYBNFeibBAhZRP61lfQsv8kJiwevKAhz4h C3Ew== X-Gm-Message-State: AOJu0YzPPa36g1/zuBq4RD770vurb9bnEUGSMjcbMiAFdeDvClAiTaJp 7h3u3K7xftLIQuhTEXEElglQ4HAStWMfswF8qZJRxJarsopJ5s6pST5Mlsi+bw== X-Google-Smtp-Source: AGHT+IHp5KhXwzylECbOOpOhQgHLxeXsk2Ap6Wjl+iEgu9HBxMQJVprXeZaZFPB6vmtvWPHYHrFh1g== X-Received: by 2002:a50:cd02:0:b0:55f:a1af:bade with SMTP id z2-20020a50cd02000000b0055fa1afbademr67546edi.4.1706787271265; Thu, 01 Feb 2024 03:34:31 -0800 (PST) X-Forwarded-Encrypted: i=0; AJvYcCWAD8h6GWYLmNJCBgNGsd4RS5rEIsQag4qHjia+2wpx664broHgisk+OeTTNFckjiuhJS4TUh5vFoXBXkDseAh/A8mDgB+tQuikvIp8BMcgAMUT1D08hlA1X6+CCb+qx/umIkx0TKfb/aZZKMzyMVMhVfLhi5XrJFYp4aPKZesnKnAw2g501AIcxKhG/YOmOUg+I6EDYlcA1Gvv9+iu7NJm65BfosmbJTArtuI9ng8bDGtsknglNnxgQufrTpkcTLEJAQbLiVdNxCLutniMAl7f8xGbHVlKdyqILAT8N1Y9wwVDAHXSHXe1vZsFT5Vlkd7H5zOQHELLclSp4swBEH1SluQWgEzsIkJJS+yyc73tp6TodAGLzrsu Received: from google.com (185.83.140.34.bc.googleusercontent.com. [34.140.83.185]) by smtp.gmail.com with ESMTPSA id w16-20020a05600c475000b0040e549c77a1sm4165318wmo.32.2024.02.01.03.34.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 Feb 2024 03:34:30 -0800 (PST) Date: Thu, 1 Feb 2024 11:34:25 +0000 From: Mostafa Saleh To: Jason Gunthorpe Cc: iommu@lists.linux.dev, Joerg Roedel , linux-arm-kernel@lists.infradead.org, Robin Murphy , Will Deacon , Moritz Fischer , Moritz Fischer , Michael Shavit , Nicolin Chen , patches@lists.linux.dev, Shameer Kolothum Subject: Re: [PATCH v4 05/16] iommu/arm-smmu-v3: Build the whole STE in arm_smmu_make_s2_domain_ste() Message-ID: References: <0-v4-c93b774edcc4+42d2b-smmuv3_newapi_p1_jgg@nvidia.com> <5-v4-c93b774edcc4+42d2b-smmuv3_newapi_p1_jgg@nvidia.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <5-v4-c93b774edcc4+42d2b-smmuv3_newapi_p1_jgg@nvidia.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240201_033434_213649_1DBC23BD X-CRM114-Status: GOOD ( 19.60 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Jason, On Thu, Jan 25, 2024 at 07:57:15PM -0400, Jason Gunthorpe wrote: > Half the code was living in arm_smmu_domain_finalise_s2(), just move it > here and take the values directly from the pgtbl_ops instead of storing > copies. > > Reviewed-by: Michael Shavit > Reviewed-by: Nicolin Chen > Tested-by: Shameer Kolothum > Tested-by: Nicolin Chen > Tested-by: Moritz Fischer > Signed-off-by: Jason Gunthorpe > --- > drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 27 ++++++++++++--------- > drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 2 -- > 2 files changed, 15 insertions(+), 14 deletions(-) > > diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c > index 910156881423e0..9a95d0f1494223 100644 > --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c > +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c > @@ -1552,6 +1552,11 @@ static void arm_smmu_make_s2_domain_ste(struct arm_smmu_ste *target, > struct arm_smmu_domain *smmu_domain) > { > struct arm_smmu_s2_cfg *s2_cfg = &smmu_domain->s2_cfg; > + const struct io_pgtable_cfg *pgtbl_cfg = > + &io_pgtable_ops_to_pgtable(smmu_domain->pgtbl_ops)->cfg; > + typeof(&pgtbl_cfg->arm_lpae_s2_cfg.vtcr) vtcr = > + &pgtbl_cfg->arm_lpae_s2_cfg.vtcr; > + u64 vtcr_val; > > memset(target, 0, sizeof(*target)); > target->data[0] = cpu_to_le64( > @@ -1562,9 +1567,16 @@ static void arm_smmu_make_s2_domain_ste(struct arm_smmu_ste *target, > FIELD_PREP(STRTAB_STE_1_EATS, > master->ats_enabled ? STRTAB_STE_1_EATS_TRANS : 0)); > > + vtcr_val = FIELD_PREP(STRTAB_STE_2_VTCR_S2T0SZ, vtcr->tsz) | > + FIELD_PREP(STRTAB_STE_2_VTCR_S2SL0, vtcr->sl) | > + FIELD_PREP(STRTAB_STE_2_VTCR_S2IR0, vtcr->irgn) | > + FIELD_PREP(STRTAB_STE_2_VTCR_S2OR0, vtcr->orgn) | > + FIELD_PREP(STRTAB_STE_2_VTCR_S2SH0, vtcr->sh) | > + FIELD_PREP(STRTAB_STE_2_VTCR_S2TG, vtcr->tg) | > + FIELD_PREP(STRTAB_STE_2_VTCR_S2PS, vtcr->ps); > target->data[2] = cpu_to_le64( > FIELD_PREP(STRTAB_STE_2_S2VMID, s2_cfg->vmid) | > - FIELD_PREP(STRTAB_STE_2_VTCR, s2_cfg->vtcr) | > + FIELD_PREP(STRTAB_STE_2_VTCR, vtcr_val) | > STRTAB_STE_2_S2AA64 | > #ifdef __BIG_ENDIAN > STRTAB_STE_2_S2ENDI | > @@ -1572,7 +1584,8 @@ static void arm_smmu_make_s2_domain_ste(struct arm_smmu_ste *target, > STRTAB_STE_2_S2PTW | > STRTAB_STE_2_S2R); > > - target->data[3] = cpu_to_le64(s2_cfg->vttbr & STRTAB_STE_3_S2TTB_MASK); > + target->data[3] = cpu_to_le64(pgtbl_cfg->arm_lpae_s2_cfg.vttbr & > + STRTAB_STE_3_S2TTB_MASK); > } > > static void arm_smmu_write_strtab_ent(struct arm_smmu_master *master, u32 sid, > @@ -2328,7 +2341,6 @@ static int arm_smmu_domain_finalise_s2(struct arm_smmu_domain *smmu_domain, > int vmid; > struct arm_smmu_device *smmu = smmu_domain->smmu; > struct arm_smmu_s2_cfg *cfg = &smmu_domain->s2_cfg; > - typeof(&pgtbl_cfg->arm_lpae_s2_cfg.vtcr) vtcr; > > /* Reserve VMID 0 for stage-2 bypass STEs */ > vmid = ida_alloc_range(&smmu->vmid_map, 1, (1 << smmu->vmid_bits) - 1, > @@ -2336,16 +2348,7 @@ static int arm_smmu_domain_finalise_s2(struct arm_smmu_domain *smmu_domain, > if (vmid < 0) > return vmid; > > - vtcr = &pgtbl_cfg->arm_lpae_s2_cfg.vtcr; > cfg->vmid = (u16)vmid; > - cfg->vttbr = pgtbl_cfg->arm_lpae_s2_cfg.vttbr; > - cfg->vtcr = FIELD_PREP(STRTAB_STE_2_VTCR_S2T0SZ, vtcr->tsz) | > - FIELD_PREP(STRTAB_STE_2_VTCR_S2SL0, vtcr->sl) | > - FIELD_PREP(STRTAB_STE_2_VTCR_S2IR0, vtcr->irgn) | > - FIELD_PREP(STRTAB_STE_2_VTCR_S2OR0, vtcr->orgn) | > - FIELD_PREP(STRTAB_STE_2_VTCR_S2SH0, vtcr->sh) | > - FIELD_PREP(STRTAB_STE_2_VTCR_S2TG, vtcr->tg) | > - FIELD_PREP(STRTAB_STE_2_VTCR_S2PS, vtcr->ps); > return 0; > } > > diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h > index 65fb388d51734d..eb669121f1954d 100644 > --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h > +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h > @@ -609,8 +609,6 @@ struct arm_smmu_ctx_desc_cfg { > > struct arm_smmu_s2_cfg { > u16 vmid; > - u64 vttbr; > - u64 vtcr; > }; > > struct arm_smmu_strtab_cfg { > -- > 2.43.0 > Reviewed-by: Mostafa Saleh Thanks, Mostafa _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel