[PATCH] misc: bh1770glc: Use common error handling code in bh1770_power_state_store()

From: SF Markus Elfring
Date: Fri Oct 27 2017 - 12:20:31 EST


From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 27 Oct 2017 18:00:31 +0200

Adjust jump targets so that a bit of exception handling can be better
reused in an if branch of this function.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
---
drivers/misc/bh1770glc.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/misc/bh1770glc.c b/drivers/misc/bh1770glc.c
index 9c62bf064f77..c4c108ed88b0 100644
--- a/drivers/misc/bh1770glc.c
+++ b/drivers/misc/bh1770glc.c
@@ -660,15 +660,14 @@ static ssize_t bh1770_power_state_store(struct device *dev,
pm_runtime_get_sync(dev);

ret = bh1770_lux_rate(chip, chip->lux_rate_index);
- if (ret < 0) {
- pm_runtime_put(dev);
- goto leave;
- }
+ if (ret < 0)
+ goto put_runtime;

ret = bh1770_lux_interrupt_control(chip, BH1770_ENABLE);
if (ret < 0) {
+put_runtime:
pm_runtime_put(dev);
- goto leave;
+ goto unlock;
}

/* This causes interrupt after the next measurement cycle */
@@ -681,7 +680,7 @@ static ssize_t bh1770_power_state_store(struct device *dev,
pm_runtime_put(dev);
}
ret = count;
-leave:
+unlock:
mutex_unlock(&chip->mutex);
return ret;
}
--
2.14.3