From patchwork Fri Jun 17 08:44:19 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Lezcano X-Patchwork-Id: 70293 Delivered-To: patch@linaro.org Received: by 10.140.28.4 with SMTP id 4csp169739qgy; Fri, 17 Jun 2016 01:44:45 -0700 (PDT) X-Received: by 10.36.26.70 with SMTP id 67mr1458352iti.4.1466153085017; Fri, 17 Jun 2016 01:44:45 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j65si11318170pfb.30.2016.06.17.01.44.44; Fri, 17 Jun 2016 01:44:44 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755392AbcFQIol (ORCPT + 30 others); Fri, 17 Jun 2016 04:44:41 -0400 Received: from mail-wm0-f53.google.com ([74.125.82.53]:35976 "EHLO mail-wm0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752337AbcFQIoj (ORCPT ); Fri, 17 Jun 2016 04:44:39 -0400 Received: by mail-wm0-f53.google.com with SMTP id f126so79832460wma.1 for ; Fri, 17 Jun 2016 01:44:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=gE6P6TcTOmXaIUGBdQ4Ccx5BslxOaXr2MZlV1YDhuoc=; b=bMsC/IZZCtYsUniJcxDLQLbKtb1VIh3JGDbYVL7UtPYXAadWJuTQi/MU/j+EZOO5sC c0cYf8H/8CVxm2mdGwWFv3qLBjt1vDpJluYdjG0fCvxwJdLy9fOtg3ji9nIJSGowBkdT pcJ7sEeN6nqIf1HVsLqqz0Khv2Hq3z4J8sUHI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=gE6P6TcTOmXaIUGBdQ4Ccx5BslxOaXr2MZlV1YDhuoc=; b=EUtIQyH7jrD4lNMwwbJOnv0I7Hsf70AmakTHRq2jeZbUyGbyGMWSKwL0Pw1ijwAFW8 BoqtmIKOu1dTT/nHT5/roBZiHfekeM+s3EzOFLknD486U/xtPK/LcwnyPSXSGCcb/4rk xZj/itBg51VLsmBycKkv9buIcEAL1nx9msEc0yituc/ufFK1YFqEqyMvuLizaamX6Yfh 1Qgd5FTDzZwQ+jfE89WfLLh9m/prVVygcUn6XUMnsttkyKF58/8v4aprtVZI0ff0tCOo jTXxdTwGNOPNo5GkB1Y/6hAJXylBHktLcTAI1UQ4GIQoLA4A/aJSa9XfZCgm+LVZQkAg Cy6A== X-Gm-Message-State: ALyK8tIaGx0VPZEqkfqvdhy+Jf9WOwRf46hNR+SrURE+EG7a2v5BnarM+Xi8NgMHOBQB8o50 X-Received: by 10.28.142.144 with SMTP id q138mr1128265wmd.30.1466153077603; Fri, 17 Jun 2016 01:44:37 -0700 (PDT) Received: from localhost.localdomain (sju31-1-78-210-255-2.fbx.proxad.net. [78.210.255.2]) by smtp.gmail.com with ESMTPSA id l4sm1916678wml.21.2016.06.17.01.44.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 17 Jun 2016 01:44:36 -0700 (PDT) From: Daniel Lezcano To: daniel.lezcano@linaro.org, tglx@linutronix.de, kernel@pengutronix.de Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH V3] clocksource/drivers/time-efm32: Convert init function to return error Date: Fri, 17 Jun 2016 10:44:19 +0200 Message-Id: <1466153059-16820-1-git-send-email-daniel.lezcano@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <20160617065250.GU26048@pengutronix.de> References: <20160617065250.GU26048@pengutronix.de> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The init functions do not return any error and let the caller unaware of the state of the system. Change that by converting the init functions to return an error conforming to the CLOCKSOURCE_OF_RET prototype. Proper error handling (rollback, errno value) will be changed later case by case, thus this change just return back an error or success in the init function. Signed-off-by: Daniel Lezcano --- drivers/clocksource/time-efm32.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) -- 1.9.1 diff --git a/drivers/clocksource/time-efm32.c b/drivers/clocksource/time-efm32.c index b06e4c2..6e2f79f 100644 --- a/drivers/clocksource/time-efm32.c +++ b/drivers/clocksource/time-efm32.c @@ -233,10 +233,15 @@ static int __init efm32_clockevent_init(struct device_node *np) DIV_ROUND_CLOSEST(rate, 1024), 0xf, 0xffff); - setup_irq(irq, &efm32_clock_event_irq); + ret = setup_irq(irq, &efm32_clock_event_irq); + if (ret) { + pr_err("Failed setup irq"); + goto err_setup_irq; + } return 0; +err_setup_irq: err_get_irq: iounmap(base); @@ -255,16 +260,16 @@ err_clk_get: * This function asserts that we have exactly one clocksource and one * clock_event_device in the end. */ -static void __init efm32_timer_init(struct device_node *np) +static int __init efm32_timer_init(struct device_node *np) { static int has_clocksource, has_clockevent; - int ret; + int ret = 0; if (!has_clocksource) { ret = efm32_clocksource_init(np); if (!ret) { has_clocksource = 1; - return; + return 0; } } @@ -272,9 +277,11 @@ static void __init efm32_timer_init(struct device_node *np) ret = efm32_clockevent_init(np); if (!ret) { has_clockevent = 1; - return; + return 0; } } + + return ret; } -CLOCKSOURCE_OF_DECLARE(efm32compat, "efm32,timer", efm32_timer_init); -CLOCKSOURCE_OF_DECLARE(efm32, "energymicro,efm32-timer", efm32_timer_init); +CLOCKSOURCE_OF_DECLARE_RET(efm32compat, "efm32,timer", efm32_timer_init); +CLOCKSOURCE_OF_DECLARE_RET(efm32, "energymicro,efm32-timer", efm32_timer_init);