[PATCH] drivers/iommu/tegra: Optimize mutex_unlock function call

2017-09-05 Thread Pushkar Jambhlekar
Code can be optimized more by making single exit point of function and calling 
mutex_unlock at the end

Signed-off-by: Pushkar Jambhlekar 
---
 drivers/iommu/tegra-smmu.c | 8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c
index 3b6449e..da38833 100644
--- a/drivers/iommu/tegra-smmu.c
+++ b/drivers/iommu/tegra-smmu.c
@@ -232,20 +232,22 @@ static inline void smmu_flush(struct tegra_smmu *smmu)
 static int tegra_smmu_alloc_asid(struct tegra_smmu *smmu, unsigned int *idp)
 {
unsigned long id;
+   int ret = 0;
 
mutex_lock(>lock);
 
id = find_first_zero_bit(smmu->asids, smmu->soc->num_asids);
if (id >= smmu->soc->num_asids) {
-   mutex_unlock(>lock);
-   return -ENOSPC;
+   ret = -ENOSPC;
+   goto Exit;
}
 
set_bit(id, smmu->asids);
*idp = id;
 
+Exit:
mutex_unlock(>lock);
-   return 0;
+   return ret;
 }
 
 static void tegra_smmu_free_asid(struct tegra_smmu *smmu, unsigned int id)
-- 
2.7.4



[PATCH] drivers/iommu/tegra: Optimize mutex_unlock function call

2017-09-05 Thread Pushkar Jambhlekar
Code can be optimized more by making single exit point of function and calling 
mutex_unlock at the end

Signed-off-by: Pushkar Jambhlekar 
---
 drivers/iommu/tegra-smmu.c | 8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c
index 3b6449e..da38833 100644
--- a/drivers/iommu/tegra-smmu.c
+++ b/drivers/iommu/tegra-smmu.c
@@ -232,20 +232,22 @@ static inline void smmu_flush(struct tegra_smmu *smmu)
 static int tegra_smmu_alloc_asid(struct tegra_smmu *smmu, unsigned int *idp)
 {
unsigned long id;
+   int ret = 0;
 
mutex_lock(>lock);
 
id = find_first_zero_bit(smmu->asids, smmu->soc->num_asids);
if (id >= smmu->soc->num_asids) {
-   mutex_unlock(>lock);
-   return -ENOSPC;
+   ret = -ENOSPC;
+   goto Exit;
}
 
set_bit(id, smmu->asids);
*idp = id;
 
+Exit:
mutex_unlock(>lock);
-   return 0;
+   return ret;
 }
 
 static void tegra_smmu_free_asid(struct tegra_smmu *smmu, unsigned int id)
-- 
2.7.4