linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "tip-bot2 for Krzysztof Kozlowski" <tip-bot2@linutronix.de>
To: linux-tip-commits@vger.kernel.org
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	x86@kernel.org, linux-kernel@vger.kernel.org
Subject: [tip: timers/core] clocksource/drivers/samsung_pwm: Cleanup on init error
Date: Fri, 18 Jun 2021 16:03:42 -0000	[thread overview]
Message-ID: <162403222216.19906.916681281934309111.tip-bot2@tip-bot2> (raw)
In-Reply-To: <20210506202729.157260-3-krzysztof.kozlowski@canonical.com>

The following commit has been merged into the timers/core branch of tip:

Commit-ID:     63e83bd8cd848a3d1b4777d90635a309fa9cb2c7
Gitweb:        https://git.kernel.org/tip/63e83bd8cd848a3d1b4777d90635a309fa9cb2c7
Author:        Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
AuthorDate:    Thu, 06 May 2021 16:27:27 -04:00
Committer:     Daniel Lezcano <daniel.lezcano@linaro.org>
CommitterDate: Fri, 04 Jun 2021 10:12:12 +02:00

clocksource/drivers/samsung_pwm: Cleanup on init error

Failure of timer initialization is likely to be fatal for the system, so
cleanup in such case is not strictly necessary.  However the code might
be refactored or reused, so better not to rely on such assumption that
system won't continue init failure.

Unmap the IO memory and put the clock on initialization failures from
devicetree.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20210506202729.157260-3-krzysztof.kozlowski@canonical.com
---
 drivers/clocksource/samsung_pwm_timer.c | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/drivers/clocksource/samsung_pwm_timer.c b/drivers/clocksource/samsung_pwm_timer.c
index bfad61b..55e2f9f 100644
--- a/drivers/clocksource/samsung_pwm_timer.c
+++ b/drivers/clocksource/samsung_pwm_timer.c
@@ -421,7 +421,7 @@ static int __init samsung_pwm_alloc(struct device_node *np,
 	struct property *prop;
 	const __be32 *cur;
 	u32 val;
-	int i;
+	int i, ret;
 
 	memcpy(&pwm.variant, variant, sizeof(pwm.variant));
 	for (i = 0; i < SAMSUNG_PWM_NUM; ++i)
@@ -444,10 +444,24 @@ static int __init samsung_pwm_alloc(struct device_node *np,
 	pwm.timerclk = of_clk_get_by_name(np, "timers");
 	if (IS_ERR(pwm.timerclk)) {
 		pr_crit("failed to get timers clock for timer\n");
-		return PTR_ERR(pwm.timerclk);
+		ret = PTR_ERR(pwm.timerclk);
+		goto err_clk;
 	}
 
-	return _samsung_pwm_clocksource_init();
+	ret = _samsung_pwm_clocksource_init();
+	if (ret)
+		goto err_clocksource;
+
+	return 0;
+
+err_clocksource:
+	clk_put(pwm.timerclk);
+	pwm.timerclk = NULL;
+err_clk:
+	iounmap(pwm.base);
+	pwm.base = NULL;
+
+	return ret;
 }
 
 static const struct samsung_pwm_variant s3c24xx_variant = {

  reply	other threads:[~2021-06-18 16:04 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-06 20:27 [PATCH 1/5] clocksource/drivers/samsung_pwm: Minor whitespace cleanup Krzysztof Kozlowski
2021-05-06 20:27 ` [PATCH 2/5] clocksource/drivers/samsung_pwm: Constify passed structure Krzysztof Kozlowski
2021-06-18 16:03   ` [tip: timers/core] " tip-bot2 for Krzysztof Kozlowski
2021-05-06 20:27 ` [PATCH 3/5] clocksource/drivers/samsung_pwm: Cleanup on init error Krzysztof Kozlowski
2021-06-18 16:03   ` tip-bot2 for Krzysztof Kozlowski [this message]
2021-05-06 20:27 ` [PATCH 4/5] clocksource/drivers/samsung_pwm: Constify source IO memory Krzysztof Kozlowski
2021-06-18 16:03   ` [tip: timers/core] " tip-bot2 for Krzysztof Kozlowski
2021-05-06 20:27 ` [PATCH 5/5] MAINTAINERS: Include Samsung PWM in Samsung SoC entry Krzysztof Kozlowski
2021-05-27 16:01 ` (subset) [PATCH 1/5] clocksource/drivers/samsung_pwm: Minor whitespace cleanup Krzysztof Kozlowski
2021-06-18 16:03 ` [tip: timers/core] " tip-bot2 for Krzysztof Kozlowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=162403222216.19906.916681281934309111.tip-bot2@tip-bot2 \
    --to=tip-bot2@linutronix.de \
    --cc=daniel.lezcano@linaro.org \
    --cc=krzysztof.kozlowski@canonical.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).