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

Commit 2c77cb2e authored by Mohammed Siddiq's avatar Mohammed Siddiq Committed by Gerrit - the friendly Code Review server
Browse files

icnss2: Validate IOVA space range only for bengal



While mapping physical address to IOVA address check for
available IOVA space only for bengal.

Change-Id: I3c555365e32dcc8b886dc6f0ad22ec6daff0bfd1
Signed-off-by: default avatarMohammed Siddiq <msiddiq@codeaurora.org>
parent 00204223
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -2514,6 +2514,7 @@ int icnss_smmu_map(struct device *dev,
{
	struct icnss_priv *priv = dev_get_drvdata(dev);
	unsigned long iova;
	int prop_len = 0;
	size_t len;
	int ret = 0;

@@ -2532,7 +2533,8 @@ int icnss_smmu_map(struct device *dev,
	len = roundup(size + paddr - rounddown(paddr, PAGE_SIZE), PAGE_SIZE);
	iova = roundup(priv->smmu_iova_ipa_current, PAGE_SIZE);

	if (iova >= priv->smmu_iova_ipa_start + priv->smmu_iova_ipa_len) {
	if (of_get_property(dev->of_node, "qcom,iommu-geometry", &prop_len) &&
	    iova >= priv->smmu_iova_ipa_start + priv->smmu_iova_ipa_len) {
		icnss_pr_err("No IOVA space to map, iova %lx, smmu_iova_ipa_start %pad, smmu_iova_ipa_len %zu\n",
			     iova,
			     &priv->smmu_iova_ipa_start,