iommu/arm-smmu-v3: Use WRITE_ONCE() when changing validity of an STE
authorWill Deacon <will@kernel.org>
Wed, 15 Jan 2020 15:21:47 +0000 (15:21 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 24 Feb 2020 07:34:48 +0000 (08:34 +0100)
commitb571787a50aabfb8b1e8ff9892aecc82b3b1df9a
treeb2afe4af3e19629c0e3600b00264d3f4c86952e3
parent8194a638d4914a489f868d2644302ad45196a4cd
iommu/arm-smmu-v3: Use WRITE_ONCE() when changing validity of an STE

[ Upstream commit d71e01716b3606a6648df7e5646ae12c75babde4 ]

If, for some bizarre reason, the compiler decided to split up the write
of STE DWORD 0, we could end up making a partial structure valid.

Although this probably won't happen, follow the example of the
context-descriptor code and use WRITE_ONCE() to ensure atomicity of the
write.

Reported-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/iommu/arm-smmu-v3.c