Skip to content

Commit 8c15364

Browse files
Jean-Philippe Bruckerwilldeacon
authored andcommitted
iommu/arm-smmu-v3: Explain why ATS stays disabled with bypass
The SMMU does not support enabling ATS for a bypass stream. Add a comment. Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org> Link: https://lore.kernel.org/r/20230321100559.341981-1-jean-philippe@linaro.org Signed-off-by: Will Deacon <will@kernel.org>
1 parent e8d018d commit 8c15364

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2447,6 +2447,13 @@ static int arm_smmu_attach_dev(struct iommu_domain *domain, struct device *dev)
24472447

24482448
master->domain = smmu_domain;
24492449

2450+
/*
2451+
* The SMMU does not support enabling ATS with bypass. When the STE is
2452+
* in bypass (STE.Config[2:0] == 0b100), ATS Translation Requests and
2453+
* Translated transactions are denied as though ATS is disabled for the
2454+
* stream (STE.EATS == 0b00), causing F_BAD_ATS_TREQ and
2455+
* F_TRANSL_FORBIDDEN events (IHI0070Ea 5.2 Stream Table Entry).
2456+
*/
24502457
if (smmu_domain->stage != ARM_SMMU_DOMAIN_BYPASS)
24512458
master->ats_enabled = arm_smmu_ats_supported(master);
24522459

0 commit comments

Comments
 (0)