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 EC3F3C04A94 for ; Fri, 4 Aug 2023 10:47:54 +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:MIME-Version:Message-ID:In-Reply-To: Date:From:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:References: List-Owner; bh=OmxbBbQBzneVhIgq5NyZguPBye5b25ANMNJjd7w/ZS0=; b=3ddfUKeIatW8U5 1QDEOtyWozUgcGfs0Up3VfnAFWlYdWYu41QIUJ2p5BEqevS+9ZeJ6AzMNL/npOil8HJ9TtGjbpqdY bIeLTtmny/IHZ4426M3cmtWlbrbt1ShzSJWvXjpMPQRb1SzK9MhnXPx2Rk+NzV+66ks2glD66gEId IvwPo8osWWjPEc5FLcj4yGRaCbtFsb2gfdqy4Zt4Cbto176HBB6+ETRzHqflN3xXCymcAN3ZRrAli 8TRVwdKn/fIyKloVcG1CyJrEuxRbtiuzDS58cRdsh+3eoiJK4DBpUs/eS64w9LCT/cVd4BU1iHvB0 ynkB/CUHxecLdzXR46cQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qRsLA-00CGtP-2q; Fri, 04 Aug 2023 10:47:28 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qRsL7-00CGsT-19 for linux-arm-kernel@lists.infradead.org; Fri, 04 Aug 2023 10:47:27 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 88D0361FA0; Fri, 4 Aug 2023 10:47:24 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8D3F2C433C8; Fri, 4 Aug 2023 10:47:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1691146043; bh=wTRn+XASvZzerx+O8tTSIB3hjez59zSCakl9ihPlRLE=; h=Subject:To:Cc:From:Date:In-Reply-To:From; b=HIAesCCIb+AOvpv2cdl6kkkXgDMhm2CDWTou2SYwDIqIV0IyCj/j4k/9QjeVGovzP IVWj3arq6KVBzmaJVRzSl0Kc2WGM3aPm52lZSZFFTUQaq3lB935h6F1bUF4wgwJlYu s9jXbCrQ0VCHIONTu3IoVVfzpORkimMvAjmNVbvA= Subject: Patch "iommu/arm-smmu-v3: Document MMU-700 erratum 2812531" has been added to the 6.4-stable tree To: baolu.lu@linux.intel.com,catalin.marinas@arm.com,corbet@lwn.net,eahariha@linux.microsoft.com,easwar.hariharan@microsoft.com,gregkh@linuxfoundation.org,iommu@lists.linux.dev,jean-philippe@linaro.org,jgg@ziepe.ca,joro@8bytes.org,kirill.shutemov@linux.intel.com,krckatom@amazon.de,linux-arm-kernel@lists.infradead.org,nicolinc@nvidia.com,robin.murphy@arm.com,u.kleine-koenig@pengutronix.de,will@kernel.org,yangyicong@hisilicon.com Cc: From: Date: Fri, 04 Aug 2023 12:47:13 +0200 In-Reply-To: <20230802172620.1628017-3-eahariha@linux.microsoft.com> Message-ID: <2023080413-mandolin-hedge-b404@gregkh> MIME-Version: 1.0 X-stable: commit X-Patchwork-Hint: ignore X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230804_034725_485057_74AC1E2B X-CRM114-Status: GOOD ( 24.27 ) 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="iso-8859-1" Content-Transfer-Encoding: quoted-printable Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org This is a note to let you know that I've just added the patch titled iommu/arm-smmu-v3: Document MMU-700 erratum 2812531 to the 6.4-stable tree which can be found at: http://www.kernel.org/git/?p=3Dlinux/kernel/git/stable/stable-queue.git= ;a=3Dsummary The filename of the patch is: iommu-arm-smmu-v3-document-mmu-700-erratum-2812531.patch and it can be found in the queue-6.4 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let know about it. >From stable-owner@vger.kernel.org Wed Aug 2 19:26:56 2023 From: Easwar Hariharan Date: Wed, 2 Aug 2023 17:26:18 +0000 Subject: iommu/arm-smmu-v3: Document MMU-700 erratum 2812531 To: stable@vger.kernel.org Cc: easwar.hariharan@microsoft.com, "Robin Murphy" , = "Nicolin Chen" , "Will Deacon" , "Cat= alin Marinas" , "Jonathan Corbet" = , "Joerg Roedel" , "Lu Baolu" , = "Jason Gunthorpe" , "Uwe Kleine-K=F6nig" , "Jean-Philippe Brucker" , "Yicong Y= ang" , "Tomas Krcka" , "Kiril= l A. Shutemov" , linux-arm-kernel@lists.in= fradead.org (moderated list:ARM64 PORT (AARCH64 ARCHITECTURE)), linux-doc@v= ger.kernel.org (open list:DOCUMENTATION), linux-kernel@vger.kernel.org (ope= n list), iommu@lists.linux.dev (open list:IOMMU SUBSYSTEM) Message-ID: <20230802172620.1628017-3-eahariha@linux.microsoft.com> From: Robin Murphy commit 309a15cb16bb075da1c99d46fb457db6a1a2669e upstream To work around MMU-700 erratum 2812531 we need to ensure that certain sequences of commands cannot be issued without an intervening sync. In practice this falls out of our current command-batching machinery anyway - each batch only contains a single type of invalidation command, and ends with a sync. The only exception is when a batch is sufficiently large to need issuing across multiple command queue slots, wherein the earlier slots will not contain a sync and thus may in theory interleave with another batch being issued in parallel to create an affected sequence across the slot boundary. Since MMU-700 supports range invalidate commands and thus we will prefer to use them (which also happens to avoid conditions for other errata), I'm not entirely sure it's even possible for a single high-level invalidate call to generate a batch of more than 63 commands, but for the sake of robustness and documentation, wire up an option to enforce that a sync is always inserted for every slot issued. The other aspect is that the relative order of DVM commands cannot be controlled, so DVM cannot be used. Again that is already the status quo, but since we have at least defined ARM_SMMU_FEAT_BTM, we can explicitly disable it for documentation purposes even if it's not wired up anywhere yet. Signed-off-by: Robin Murphy Reviewed-by: Nicolin Chen Link: https://lore.kernel.org/r/330221cdfd0003cd51b6c04e7ff3566741ad8374.16= 83731256.git.robin.murphy@arm.com Signed-off-by: Will Deacon Signed-off-by: Easwar Hariharan Signed-off-by: Greg Kroah-Hartman --- Documentation/arm64/silicon-errata.rst | 2 ++ drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 12 ++++++++++++ drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 1 + 3 files changed, 15 insertions(+) --- a/Documentation/arm64/silicon-errata.rst +++ b/Documentation/arm64/silicon-errata.rst @@ -145,6 +145,8 @@ stable kernels. +----------------+-----------------+-----------------+--------------------= ---------+ | ARM | MMU-600 | #1076982 | N/A = | +----------------+-----------------+-----------------+--------------------= ---------+ +| ARM | MMU-700 | #2812531 | N/A = | ++----------------+-----------------+-----------------+--------------------= ---------+ +----------------+-----------------+-----------------+--------------------= ---------+ | Broadcom | Brahma-B53 | N/A | ARM64_ERRATUM_84571= 9 | +----------------+-----------------+-----------------+--------------------= ---------+ --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -894,6 +894,12 @@ static void arm_smmu_cmdq_batch_add(stru { int index; = + if (cmds->num =3D=3D CMDQ_BATCH_ENTRIES - 1 && + (smmu->options & ARM_SMMU_OPT_CMDQ_FORCE_SYNC)) { + arm_smmu_cmdq_issue_cmdlist(smmu, cmds->cmds, cmds->num, true); + cmds->num =3D 0; + } + if (cmds->num =3D=3D CMDQ_BATCH_ENTRIES) { arm_smmu_cmdq_issue_cmdlist(smmu, cmds->cmds, cmds->num, false); cmds->num =3D 0; @@ -3431,6 +3437,7 @@ static int arm_smmu_device_reset(struct = #define IIDR_IMPLEMENTER_ARM 0x43b #define IIDR_PRODUCTID_ARM_MMU_600 0x483 +#define IIDR_PRODUCTID_ARM_MMU_700 0x487 = static void arm_smmu_device_iidr_probe(struct arm_smmu_device *smmu) { @@ -3451,6 +3458,11 @@ static void arm_smmu_device_iidr_probe(s if (variant =3D=3D 0 && revision <=3D 2) smmu->features &=3D ~ARM_SMMU_FEAT_SEV; break; + case IIDR_PRODUCTID_ARM_MMU_700: + /* Arm erratum 2812531 */ + smmu->features &=3D ~ARM_SMMU_FEAT_BTM; + smmu->options |=3D ARM_SMMU_OPT_CMDQ_FORCE_SYNC; + break; } break; } --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h @@ -650,6 +650,7 @@ struct arm_smmu_device { #define ARM_SMMU_OPT_SKIP_PREFETCH (1 << 0) #define ARM_SMMU_OPT_PAGE0_REGS_ONLY (1 << 1) #define ARM_SMMU_OPT_MSIPOLL (1 << 2) +#define ARM_SMMU_OPT_CMDQ_FORCE_SYNC (1 << 3) u32 options; = struct arm_smmu_cmdq cmdq; Patches currently in stable-queue which might be from stable-owner@vger.ker= nel.org are queue-6.4/iommu-arm-smmu-v3-document-nesting-related-errata.patch queue-6.4/iommu-arm-smmu-v3-add-explicit-feature-for-nesting.patch queue-6.4/iommu-arm-smmu-v3-document-mmu-700-erratum-2812531.patch queue-6.4/iommu-arm-smmu-v3-work-around-mmu-600-erratum-1076982.patch _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel