Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1483476

[PATCH v5 2/6] regulator: core: Simplify error flow in _regulator_do_set_voltage()

From Matthias Kaehlcke <mka@chromium.org>
Newsgroups linux.kernel
Subject [PATCH v5 2/6] regulator: core: Simplify error flow in _regulator_do_set_voltage()
Date 2016-09-14 19:00 +0200
Message-ID <shlHs-3jX-11@gated-at.bofh.it> (permalink)
References <shlHs-3jX-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


If the voltage can not be set jump to the end of the function. This
avoids having to check for an error multiple times and eliminates one
level of nesting in a follow-up change.

Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
---
Changes in v5:
- This patch is new for v5.

 drivers/regulator/core.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index b059e83..b0076cc 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -2800,8 +2800,11 @@ static int _regulator_do_set_voltage(struct regulator_dev *rdev,
 		ret = -EINVAL;
 	}
 
+	if (ret)
+		goto out;
+
 	/* Call set_voltage_time_sel if successfully obtained old_selector */
-	if (ret == 0 && !rdev->constraints->ramp_disable && old_selector >= 0
+	if (!rdev->constraints->ramp_disable && old_selector >= 0
 		&& old_selector != selector) {
 
 		delay = ops->set_voltage_time_sel(rdev,
@@ -2821,13 +2824,14 @@ static int _regulator_do_set_voltage(struct regulator_dev *rdev,
 		}
 	}
 
-	if (ret == 0 && best_val >= 0) {
+	if (best_val >= 0) {
 		unsigned long data = best_val;
 
 		_notifier_call_chain(rdev, REGULATOR_EVENT_VOLTAGE_CHANGE,
 				     (void *)data);
 	}
 
+out:
 	trace_regulator_set_voltage_complete(rdev_get_name(rdev), best_val);
 
 	return ret;
-- 
2.8.0.rc3.226.g39d4020

Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

[PATCH v5 2/6] regulator: core: Simplify error flow in _regulator_do_set_voltage() Matthias Kaehlcke <mka@chromium.org> - 2016-09-14 19:00 +0200
  Applied "regulator: core: Simplify error flow in _regulator_do_set_voltage()" to the regulator tree Mark Brown <broonie@kernel.org> - 2016-09-16 19:50 +0200

csiph-web