This is a note to let you know that I've just added the patch titled iommu/arm-smmu-v3: Add explicit feature for nesting to the 5.15-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: iommu-arm-smmu-v3-add-explicit-feature-for-nesting.patch and it can be found in the queue-5.15 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From stable-owner@xxxxxxxxxxxxxxx Wed Aug 2 19:02:51 2023 From: Easwar Hariharan <eahariha@xxxxxxxxxxxxxxxxxxx> Date: Wed, 2 Aug 2023 17:02:26 +0000 Subject: iommu/arm-smmu-v3: Add explicit feature for nesting To: stable@xxxxxxxxxxxxxxx Cc: easwar.hariharan@xxxxxxxxxxxxx, Robin Murphy <robin.murphy@xxxxxxx>, Nicolin Chen <nicolinc@xxxxxxxxxx>, Will Deacon <will@xxxxxxxxxx>, Joerg Roedel <joro@xxxxxxxxxx>, Sasha Levin <sashal@xxxxxxxxxx>, Tomas Krcka <krckatom@xxxxxxxxx>, Yicong Yang <yangyicong@xxxxxxxxxxxxx>, linux-arm-kernel@xxxxxxxxxxxxxxxxxxx (moderated list:ARM SMMU DRIVERS), iommu@xxxxxxxxxxxxxxxxxxxxxxxxxx (open list:IOMMU DRIVERS), iommu@xxxxxxxxxxxxxxx (open list:IOMMU DRIVERS), linux-kernel@xxxxxxxxxxxxxxx (open list) Message-ID: <20230802170227.1590187-6-eahariha@xxxxxxxxxxxxxxxxxxx> From: Robin Murphy <robin.murphy@xxxxxxx> commit 1d9777b9f3d55b4b6faf186ba4f1d6fb560c0523 upstream In certain cases we may want to refuse to allow nested translation even when both stages are implemented, so let's add an explicit feature for nesting support which we can control in its own right. For now this merely serves as documentation, but it means a nice convenient check will be ready and waiting for the future nesting code. Signed-off-by: Robin Murphy <robin.murphy@xxxxxxx> Reviewed-by: Nicolin Chen <nicolinc@xxxxxxxxxx> Link: https://lore.kernel.org/r/136c3f4a3a84cc14a5a1978ace57dfd3ed67b688.1683731256.git.robin.murphy@xxxxxxx Signed-off-by: Will Deacon <will@xxxxxxxxxx> Signed-off-by: Easwar Hariharan <eahariha@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 4 ++++ drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 1 + 2 files changed, 5 insertions(+) --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -3703,6 +3703,10 @@ static int arm_smmu_device_hw_probe(stru smmu->ias = max(smmu->ias, smmu->oas); + if ((smmu->features & ARM_SMMU_FEAT_TRANS_S1) && + (smmu->features & ARM_SMMU_FEAT_TRANS_S2)) + smmu->features |= ARM_SMMU_FEAT_NESTING; + arm_smmu_device_iidr_probe(smmu); if (arm_smmu_sva_supported(smmu)) --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h @@ -646,6 +646,7 @@ struct arm_smmu_device { #define ARM_SMMU_FEAT_BTM (1 << 16) #define ARM_SMMU_FEAT_SVA (1 << 17) #define ARM_SMMU_FEAT_E2H (1 << 18) +#define ARM_SMMU_FEAT_NESTING (1 << 19) u32 features; #define ARM_SMMU_OPT_SKIP_PREFETCH (1 << 0) Patches currently in stable-queue which might be from stable-owner@xxxxxxxxxxxxxxx are queue-5.15/arm64-errata-add-workaround-for-tsb-flush-failures.patch queue-5.15/iommu-arm-smmu-v3-document-nesting-related-errata.patch queue-5.15/iommu-arm-smmu-v3-add-explicit-feature-for-nesting.patch queue-5.15/arm64-errata-add-detection-for-trbe-write-to-out-of-range.patch queue-5.15/iommu-arm-smmu-v3-document-mmu-700-erratum-2812531.patch queue-5.15/iommu-arm-smmu-v3-work-around-mmu-600-erratum-1076982.patch