From: joshc@eso.teric.us (Josh Cartwright)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] arm: mach-zynq/timer.c: fix memory leakage
Date: Mon, 14 Jan 2013 16:32:20 -0600 [thread overview]
Message-ID: <20130114223220.GC28312@kryptos> (raw)
In-Reply-To: <1358198331-31949-1-git-send-email-dinggnu@gmail.com>
On Mon, Jan 14, 2013 at 10:18:46PM +0100, Cong Ding wrote:
> the variable ttccs allocated isn't freed when error occurs, so we call kfree
> before return.
>
> Signed-off-by: Cong Ding <dinggnu@gmail.com>
> ---
> arch/arm/mach-zynq/timer.c | 25 ++++++++++++++++---------
> 1 file changed, 16 insertions(+), 9 deletions(-)
>
> diff --git a/arch/arm/mach-zynq/timer.c b/arch/arm/mach-zynq/timer.c
> index f9fbc9c..df04761 100644
> --- a/arch/arm/mach-zynq/timer.c
> +++ b/arch/arm/mach-zynq/timer.c
> @@ -203,15 +203,15 @@ static void __init zynq_ttc_setup_clocksource(struct device_node *np,
>
> err = of_property_read_u32(np, "reg", ®);
> if (WARN_ON(err))
> - return;
> + goto out;
>
> clk = of_clk_get_by_name(np, "cpu_1x");
> if (WARN_ON(IS_ERR(clk)))
> - return;
> + goto out;
>
> err = clk_prepare_enable(clk);
> if (WARN_ON(err))
> - return;
> + goto out;
>
> ttccs->xttc.base_addr = base + reg * 4;
>
> @@ -229,7 +229,10 @@ static void __init zynq_ttc_setup_clocksource(struct device_node *np,
>
> err = clocksource_register_hz(&ttccs->cs, clk_get_rate(clk) / PRESCALE);
> if (WARN_ON(err))
> - return;
> + goto out;
> + return;
> +out:
> + kfree(ttccs);
> }
Okay...hmm. If initialization of the timer fails, you'll have bigger
issues then just a small memory leak. Especially since right now the
TTC is the only supported timer on zynq.
But okay, to be forward looking we should probably properly handle these
error cases.
You've only handled the memory leak here, but there are other potential
leaks that you should be handling (the clk handle, clock event
interrupt, ioremap()'d region, etc). Could you take care of those while
your at it?
Josh
prev parent reply other threads:[~2013-01-14 22:32 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-14 21:18 [PATCH] arm: mach-zynq/timer.c: fix memory leakage Cong Ding
2013-01-14 22:32 ` Josh Cartwright [this message]
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=20130114223220.GC28312@kryptos \
--to=joshc@eso.teric.us \
--cc=linux-arm-kernel@lists.infradead.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).