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

Commit 75753220 authored by Naman Padhiar's avatar Naman Padhiar
Browse files

icnss: Validate IOVA space range only for bengal



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

Change-Id: I1809fb8f15173364ebd370a000b94140e3d1e3a3
Signed-off-by: default avatarNaman Padhiar <npadhiar@codeaurora.org>
parent ca8e02c4
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -2204,6 +2204,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;

@@ -2222,7 +2223,8 @@ int icnss_smmu_map(struct device *dev,
	len = roundup(size + paddr - rounddown(paddr, PAGE_SIZE), PAGE_SIZE);
	iova = roundup(penv->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,