From 2a0c9c9dee97747b66fb51b525e5d6e9050e3b7f Mon Sep 17 00:00:00 2001 From: Patrick Daly Date: Tue, 22 Mar 2016 18:46:38 -0700 Subject: [PATCH] iommu/arm-smmu: Fix DOMAIN_ATTR_S1_BYPASS check change "iommu/arm-smmu: Support DOMAIN_ATTR_S1_BYPASS" checks the wrong bit when determine whether to bypass or not to bypass stage1 translation. Fix it. CRs-Fixed: 995213 Change-Id: Id347f540f866be6b8442d5f166c6cf7b0ae4c000 Signed-off-by: Patrick Daly --- drivers/iommu/arm-smmu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c index 9552e5b6a3d1..a9b6b24725b4 100644 --- a/drivers/iommu/arm-smmu.c +++ b/drivers/iommu/arm-smmu.c @@ -1454,7 +1454,9 @@ static void arm_smmu_init_context_bank(struct arm_smmu_domain *smmu_domain, /* SCTLR */ reg = SCTLR_CFCFG | SCTLR_CFIE | SCTLR_CFRE | SCTLR_EAE_SBOP; - if (!stage1 || !(smmu_domain->attributes & DOMAIN_ATTR_S1_BYPASS)) + + if (!(smmu_domain->attributes & (1 << DOMAIN_ATTR_S1_BYPASS)) || + !stage1) reg |= SCTLR_M; if (stage1) reg |= SCTLR_S1_ASIDPNE;