From patchwork Tue Nov 22 09:44:24 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Lezcano X-Patchwork-Id: 83363 Delivered-To: patch@linaro.org Received: by 10.140.97.165 with SMTP id m34csp2005029qge; Tue, 22 Nov 2016 01:45:18 -0800 (PST) X-Received: by 10.98.13.130 with SMTP id 2mr24866667pfn.185.1479807917956; Tue, 22 Nov 2016 01:45:17 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n14si27613137pfb.155.2016.11.22.01.45.17; Tue, 22 Nov 2016 01:45:17 -0800 (PST) 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 S1755736AbcKVJpK (ORCPT + 26 others); Tue, 22 Nov 2016 04:45:10 -0500 Received: from mail-wm0-f52.google.com ([74.125.82.52]:35479 "EHLO mail-wm0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755607AbcKVJpG (ORCPT ); Tue, 22 Nov 2016 04:45:06 -0500 Received: by mail-wm0-f52.google.com with SMTP id a197so15318799wmd.0 for ; Tue, 22 Nov 2016 01:45:05 -0800 (PST) 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=ZhQxCq7pz2euFHubm4MVR9laXw7FW50yjR2c99M2Qlk=; b=kWM5amJUdiTySi7UVeEf7s1gMJUgiwXlV0bnS9M/qzTeg16MwvOsfuP0WRYIGvBqwx kNSNBw81i/WgMs3RUye9TCi8CdUQdySleWUJUjwY/tn/8P4wZWCYlpWd3jqKxch/GX+W 3lYNX+jIbLPMv8ft6Hbp+/k/HyJXcAAoTjLK8= 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=ZhQxCq7pz2euFHubm4MVR9laXw7FW50yjR2c99M2Qlk=; b=Jr6MWwYfkb9K3ldcS6vvRDJcEwzcdSD290VGBJhQuPJ0iFcUcTPqbiKKAPoSQbt9vz ba2L98stum/5NtQPoFDZLNEQ4Yz/2uVcoZQjAFKEh2adutzkom2VKfgAoKW61fza4OTI +9PN1hbN5Ze70Uac1OAPh8l/6F47RSNdf8KGd2OoYfMqptXb3aQp2D82+/3wmeV9KxIW nH0SCIbhsU76K+gcIz4wgAveYznxs1Uk6QVrD4floqLUXsx5l35g+8vRapTR67svZ4kY DwTIUN2bfbFNLB5q1fecj/SN2wchWvekNGJWQN82SnydlV3JcMkyuHKwhPyBl7byLM06 6Vsg== X-Gm-Message-State: AKaTC01q0HFdlqTyP7TWdMIcpo8VY84LjEgm0KQBepJKLgiibc4Nw8PGMxFJdUhm5i1Rvwni X-Received: by 10.194.101.97 with SMTP id ff1mr15387271wjb.67.1479807899635; Tue, 22 Nov 2016 01:44:59 -0800 (PST) Received: from localhost.localdomain ([2a01:e35:879a:6cd0:d4cd:7489:29a3:d5ed]) by smtp.gmail.com with ESMTPSA id ab10sm29789450wjc.45.2016.11.22.01.44.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 22 Nov 2016 01:44:59 -0800 (PST) From: Daniel Lezcano To: tglx@linutronix.de Cc: linux-kernel@vger.kernel.org, Arvind Yadav , Florian Fainelli , Ray Jui , Scott Branden , bcm-kernel-feedback-list@broadcom.com (maintainer:BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITE...), Stephen Warren , Lee Jones , Eric Anholt , linux-rpi-kernel@lists.infradead.org (moderated list:BROADCOM BCM2835 ARM ARCHITECTURE), linux-arm-kernel@lists.infradead.org (moderated list:BROADCOM BCM2835 ARM ARCHITECTURE) Subject: [PATCH 4/4] clocksource/drivers/bcm2835_timer: Unmap region obtained by of_iomap Date: Tue, 22 Nov 2016 10:44:24 +0100 Message-Id: <1479807866-6957-4-git-send-email-daniel.lezcano@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1479807866-6957-1-git-send-email-daniel.lezcano@linaro.org> References: <20161122094300.GA2017@mai> <1479807866-6957-1-git-send-email-daniel.lezcano@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Arvind Yadav Free memory mapping, if bcm2835_timer_init is not successful. Signed-off-by: Arvind Yadav Reviewed-by: Eric Anholt Signed-off-by: Daniel Lezcano --- drivers/clocksource/bcm2835_timer.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) -- 2.7.4 diff --git a/drivers/clocksource/bcm2835_timer.c b/drivers/clocksource/bcm2835_timer.c index e71acf2..f2f29d2 100644 --- a/drivers/clocksource/bcm2835_timer.c +++ b/drivers/clocksource/bcm2835_timer.c @@ -96,7 +96,7 @@ static int __init bcm2835_timer_init(struct device_node *node) ret = of_property_read_u32(node, "clock-frequency", &freq); if (ret) { pr_err("Can't read clock-frequency"); - return ret; + goto err_iounmap; } system_clock = base + REG_COUNTER_LO; @@ -108,13 +108,15 @@ static int __init bcm2835_timer_init(struct device_node *node) irq = irq_of_parse_and_map(node, DEFAULT_TIMER); if (irq <= 0) { pr_err("Can't parse IRQ"); - return -EINVAL; + ret = -EINVAL; + goto err_iounmap; } timer = kzalloc(sizeof(*timer), GFP_KERNEL); if (!timer) { pr_err("Can't allocate timer struct\n"); - return -ENOMEM; + ret = -ENOMEM; + goto err_iounmap; } timer->control = base + REG_CONTROL; @@ -133,7 +135,7 @@ static int __init bcm2835_timer_init(struct device_node *node) ret = setup_irq(irq, &timer->act); if (ret) { pr_err("Can't set up timer IRQ\n"); - return ret; + goto err_iounmap; } clockevents_config_and_register(&timer->evt, freq, 0xf, 0xffffffff); @@ -141,6 +143,10 @@ static int __init bcm2835_timer_init(struct device_node *node) pr_info("bcm2835: system timer (irq = %d)\n", irq); return 0; + +err_iounmap: + iounmap(base); + return ret; } CLOCKSOURCE_OF_DECLARE(bcm2835, "brcm,bcm2835-system-timer", bcm2835_timer_init);