Skip to content

Commit

Permalink
iommu/msm: Fix error handling in msm_iommu_unmap()
Browse files Browse the repository at this point in the history
Error handling in msm_iommu_unmap() is broken. On some error
conditions retval is set to a non-zero value which causes
the function to return 'len' at the end. This hides the
error from the user. Zero should be returned in those error
cases.

Cc: David Brown <davidb@codeaurora.org>
Cc: Stepan Moskovchenko <stepanm@codeaurora.org>
Cc: stable@vger.kernel.org # >= 3.1
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Acked-by: David Brown <davidb@codeaurora.org>
  • Loading branch information
Joerg Roedel committed Jan 30, 2012
1 parent af1be04 commit 05df1f3
Showing 1 changed file with 1 addition and 6 deletions.
7 changes: 1 addition & 6 deletions drivers/iommu/msm_iommu.c
Original file line number Diff line number Diff line change
Expand Up @@ -482,23 +482,19 @@ static size_t msm_iommu_unmap(struct iommu_domain *domain, unsigned long va,

priv = domain->priv;

if (!priv) {
ret = -ENODEV;
if (!priv)
goto fail;
}

fl_table = priv->pgtable;

if (len != SZ_16M && len != SZ_1M &&
len != SZ_64K && len != SZ_4K) {
pr_debug("Bad length: %d\n", len);
ret = -EINVAL;
goto fail;
}

if (!fl_table) {
pr_debug("Null page table\n");
ret = -EINVAL;
goto fail;
}

Expand All @@ -507,7 +503,6 @@ static size_t msm_iommu_unmap(struct iommu_domain *domain, unsigned long va,

if (*fl_pte == 0) {
pr_debug("First level PTE is 0\n");
ret = -ENODEV;
goto fail;
}

Expand Down

0 comments on commit 05df1f3

Please sign in to comment.