Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1402f940 authored by Liam Mark's avatar Liam Mark Committed by Patrick Daly
Browse files

iommu/io-pgtable-arm: fix multibit shareability comparison



Since the PTE shareability values can be multibit fix so that they
are properly checked.

Change-Id: I36791921b0189b50cbbcb79efdb2f1a36ad9d726
Signed-off-by: default avatarLiam Mark <lmark@codeaurora.org>
parent 83a9f86e
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -89,6 +89,7 @@
#define ARM_LPAE_PTE_TYPE_TABLE		3
#define ARM_LPAE_PTE_TYPE_PAGE		3

#define ARM_LPAE_PTE_SH_MASK		(((arm_lpae_iopte)0x3) << 8)
#define ARM_LPAE_PTE_NSTABLE		(((arm_lpae_iopte)1) << 63)
#define ARM_LPAE_PTE_XN			(((arm_lpae_iopte)3) << 53)
#define ARM_LPAE_PTE_AF			(((arm_lpae_iopte)1) << 10)
@@ -894,8 +895,9 @@ static bool __arm_lpae_is_iova_coherent(struct arm_lpae_io_pgtable *data,
					ARM_LPAE_PTE_ATTRINDX_SHIFT)) >>
					ARM_LPAE_PTE_ATTRINDX_SHIFT;
		if ((attr_idx == ARM_LPAE_MAIR_ATTR_IDX_CACHE) &&
		    ((*ptep & ARM_LPAE_PTE_SH_IS) ||
		     (*ptep & ARM_LPAE_PTE_SH_OS)))
		   (((*ptep & ARM_LPAE_PTE_SH_MASK) == ARM_LPAE_PTE_SH_IS)
		     ||
		     (*ptep & ARM_LPAE_PTE_SH_MASK) == ARM_LPAE_PTE_SH_OS))
			return true;
	} else {
		if (*ptep & ARM_LPAE_PTE_MEMATTR_OIWB)