iommu/arm-smmu: Use incoming shareability attributes in bypass mode
authorWill Deacon <will.deacon@arm.com>
Wed, 18 Nov 2015 18:15:51 +0000 (18:15 +0000)
committerWill Deacon <will.deacon@arm.com>
Thu, 17 Dec 2015 12:05:33 +0000 (12:05 +0000)
commita0eacd89e35e55aad284cc2e6865bf2dcf7037ba
tree1e1f61e9dd62c9e6490778200d6e70079600caf6
parent44830b0cbdba29789f2a569d08dbaa3d1605c94c
iommu/arm-smmu: Use incoming shareability attributes in bypass mode

When we initialise a bypass STE, we memset the structure to zero and
set the Valid and Config fields to indicate that the stream should
bypass the SMMU. Unfortunately, this results in an SHCFG field of 0
which means that the shareability of any incoming transactions is
overridden with non-shareable, leading to potential coherence problems
down the line.

This patch fixes the issue by initialising bypass STEs to use the
incoming shareability attributes. When translation is in effect at
either stage 1 or stage 2, the shareability is determined by the
page tables.

Signed-off-by: Will Deacon <will.deacon@arm.com>
drivers/iommu/arm-smmu-v3.c