From patchwork Tue Jan 15 18:44:26 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Ding X-Patchwork-Id: 1979951 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) by patchwork1.kernel.org (Postfix) with ESMTP id 8B02C3FC85 for ; Tue, 15 Jan 2013 18:48:18 +0000 (UTC) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1TvBV5-0008Vu-0U; Tue, 15 Jan 2013 18:44:43 +0000 Received: from mail-wg0-f46.google.com ([74.125.82.46]) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1TvBUz-0008V9-Kc for linux-arm-kernel@lists.infradead.org; Tue, 15 Jan 2013 18:44:38 +0000 Received: by mail-wg0-f46.google.com with SMTP id dr13so289249wgb.1 for ; Tue, 15 Jan 2013 10:44:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:date:from:to:cc:subject:message-id:references :mime-version:content-type:content-disposition:in-reply-to :user-agent; bh=zFJ8N7SiznKXjIv6lvG3CSS18eTfp9plqfNmgCxqc2g=; b=gdFBIJBHYL20ixYTEmrq4AB1g+AbNaKxNbP1wXUnyYnDFg42sAhRMsy03PWSbn/L6v EQyySioMTB/fzU59OpJ7XZsrgzVzBxSZKDAXwPtAROI9sO8hxBAnY8Y47T7lWwF+MSyl 7OcCD8wPRfBX0ONE3u9ezgaswms7oS6vPNsIxCd3c6jnvowOLa9BNuI7Tqj47IWRGaZu TcQ7hxJhzWYHP8bMl2M4mDK1qpE8KuSKGBSFtneqZxS/j8NZPLgf1y+PqGYUDarWq7RJ Hg/GDfTgiB8Ao4FZLXZz7MQhPt7GmUVDsx1TqW0K475O+eR+yGjcRRcgbuUFb1zNvLe2 /t/A== X-Received: by 10.180.78.66 with SMTP id z2mr5378479wiw.23.1358275475804; Tue, 15 Jan 2013 10:44:35 -0800 (PST) Received: from gmail.com (77.47.90.154.dynamic.cablesurf.de. [77.47.90.154]) by mx.google.com with ESMTPS id l5sm5026103wia.10.2013.01.15.10.44.30 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Tue, 15 Jan 2013 10:44:35 -0800 (PST) Date: Tue, 15 Jan 2013 19:44:26 +0100 From: Cong Ding To: Gregory CLEMENT Subject: [PATCH v3] clk: mvebu/clk-cpu.c: fix memory leakage Message-ID: <20130115184423.GC7211@gmail.com> References: <1358183892-28928-1-git-send-email-dinggnu@gmail.com> <50F563EC.3030804@free-electrons.com> <20130115152307.GA25615@gmail.com> <20130115153716.GF13433@titan.lakedaemon.net> <50F584F5.6030007@free-electrons.com> <20130115182629.GB7211@gmail.com> <50F5A1A9.2030803@free-electrons.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <50F5A1A9.2030803@free-electrons.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20130115_134437_848344_21C7EEDE X-CRM114-Status: GOOD ( 10.29 ) X-Spam-Score: -2.7 (--) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-2.7 points) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (dinggnu[at]gmail.com) -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [74.125.82.46 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature Cc: Thomas Petazzoni , Mike Turquette , Jason Cooper , "linux-arm-kernel@lists.infradead.org" , linux-kernel@vger.kernel.org X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org the variable cpuclk and clk_name should be properly freed when error happens. Signed-off-by: Cong Ding Acked-by: Jason Cooper Acked-by: Gregory CLEMENT Acked-by: Mike Turquette --- drivers/clk/mvebu/clk-cpu.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/clk/mvebu/clk-cpu.c b/drivers/clk/mvebu/clk-cpu.c index ff004578..9dd2551 100644 --- a/drivers/clk/mvebu/clk-cpu.c +++ b/drivers/clk/mvebu/clk-cpu.c @@ -124,7 +124,7 @@ void __init of_cpu_clk_setup(struct device_node *node) clks = kzalloc(ncpus * sizeof(*clks), GFP_KERNEL); if (WARN_ON(!clks)) - return; + goto clks_out; for_each_node_by_type(dn, "cpu") { struct clk_init_data init; @@ -134,11 +134,11 @@ void __init of_cpu_clk_setup(struct device_node *node) int cpu, err; if (WARN_ON(!clk_name)) - return; + goto bail_out; err = of_property_read_u32(dn, "reg", &cpu); if (WARN_ON(err)) - return; + goto bail_out; sprintf(clk_name, "cpu%d", cpu); parent_clk = of_clk_get(node, 0); @@ -167,6 +167,9 @@ void __init of_cpu_clk_setup(struct device_node *node) return; bail_out: kfree(clks); + while(ncpus--) + kfree(cpuclk[ncpus].clk_name); +clks_out: kfree(cpuclk); }