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

Commit 07621cf3 authored by Mitchel Humpherys's avatar Mitchel Humpherys
Browse files

iommu: io-pgtable-arm: Improve coverage of arm_lpae_range_has_mapping



The arm_lpae_range_has_mapping currently checks if there are any
non-mapped slots in a given iova range, but it's really meant to check
if there is *any* mapping whatsoever in a given iova range.  Fix this.

Change-Id: I90e426ab157cc194328b754ac5021051ac883603
Signed-off-by: default avatarMitchel Humpherys <mitchelh@codeaurora.org>
parent a5deeba0
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -954,7 +954,7 @@ static void __init arm_lpae_dump_ops(struct io_pgtable_ops *ops)
})

/*
 * Returns true if the entire iova range has any mapping in ops.
 * Returns true if there's any mapping in the given iova range in ops.
 */
static bool arm_lpae_range_has_mapping(struct io_pgtable_ops *ops,
				       unsigned long iova_start, size_t size)
@@ -962,11 +962,11 @@ static bool arm_lpae_range_has_mapping(struct io_pgtable_ops *ops,
	unsigned long iova = iova_start;

	while (iova < (iova_start + size)) {
		if (!ops->iova_to_phys(ops, iova + 42))
			return false;
		if (ops->iova_to_phys(ops, iova + 42))
			return true;
		iova += SZ_4K;
	}
	return true;
	return false;
}

/*