All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sylwester Nawrocki <s.nawrocki@samsung.com>
To: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Cc: linux-kernel@vger.kernel.org,
	Mike Turquette <mturquette@linaro.org>,
	Stephen Boyd <sboyd@codeaurora.org>,
	Javier Martinez Canillas <javier.martinez@collabora.co.uk>,
	Paul Walmsley <paul@pwsan.com>, Tony Lindgren <tony@atomide.com>,
	Russell King <linux@arm.linux.org.uk>,
	linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v13 3/6] clk: Make clk API return per-user struct clk instances
Date: Thu, 05 Feb 2015 21:06:48 +0100	[thread overview]
Message-ID: <54D3CD58.4030902@samsung.com> (raw)
In-Reply-To: <54D3C803.30706@samsung.com>

On 05/02/15 20:44, Sylwester Nawrocki wrote:
>> +void __clk_put(struct clk *clk)
>> > +{
>> > +	if (!clk || WARN_ON_ONCE(IS_ERR(clk)))
>> > +		return;
>> > +
>> > +	clk_core_put(clk->core);
>> > +	kfree(clk);
>
> Why do we have kfree() here? clk_get() doesn't allocate the data structure 
> being freed here. What happens if we do clk_get(), clk_put(), clk_get() 
> on same clock?
> 
> I suspect __clk_free_clk() should be called in __clk_release() callback
> instead, but then there is an issue of safely getting reference to
> struct clk from struct clk_core pointer.

Please ignore this comment, I missed __clk_create_clk() calls in clkdev.c
Anyway, in current -next I'm seeing random pointer dereferences while
booting Odroid U3, I'll get back to debugging this tomorrow morning.

-- 
Regards,
Sylwester

WARNING: multiple messages have this Message-ID (diff)
From: s.nawrocki@samsung.com (Sylwester Nawrocki)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v13 3/6] clk: Make clk API return per-user struct clk instances
Date: Thu, 05 Feb 2015 21:06:48 +0100	[thread overview]
Message-ID: <54D3CD58.4030902@samsung.com> (raw)
In-Reply-To: <54D3C803.30706@samsung.com>

On 05/02/15 20:44, Sylwester Nawrocki wrote:
>> +void __clk_put(struct clk *clk)
>> > +{
>> > +	if (!clk || WARN_ON_ONCE(IS_ERR(clk)))
>> > +		return;
>> > +
>> > +	clk_core_put(clk->core);
>> > +	kfree(clk);
>
> Why do we have kfree() here? clk_get() doesn't allocate the data structure 
> being freed here. What happens if we do clk_get(), clk_put(), clk_get() 
> on same clock?
> 
> I suspect __clk_free_clk() should be called in __clk_release() callback
> instead, but then there is an issue of safely getting reference to
> struct clk from struct clk_core pointer.

Please ignore this comment, I missed __clk_create_clk() calls in clkdev.c
Anyway, in current -next I'm seeing random pointer dereferences while
booting Odroid U3, I'll get back to debugging this tomorrow morning.

-- 
Regards,
Sylwester

  reply	other threads:[~2015-02-05 20:06 UTC|newest]

Thread overview: 186+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-23 11:03 [PATCH v13 0/6] Per-user clock constraints Tomeu Vizoso
2015-01-23 11:03 ` [PATCH v13 1/6] clk: Remove unneeded NULL checks Tomeu Vizoso
2015-01-23 11:03 ` [PATCH v13 2/6] clk: Remove __clk_register Tomeu Vizoso
2015-01-23 11:03 ` [PATCH v13 3/6] clk: Make clk API return per-user struct clk instances Tomeu Vizoso
2015-01-23 11:03   ` Tomeu Vizoso
2015-02-01 21:24   ` Mike Turquette
2015-02-01 21:24     ` Mike Turquette
2015-02-01 21:24     ` Mike Turquette
2015-02-02 17:04     ` Tony Lindgren
2015-02-02 17:04       ` Tony Lindgren
2015-02-02 17:32       ` Mike Turquette
2015-02-02 17:32         ` Mike Turquette
2015-02-02 19:32     ` Tero Kristo
2015-02-02 19:32       ` Tero Kristo
2015-02-02 19:32       ` Tero Kristo
2015-02-02 20:44       ` Tony Lindgren
2015-02-02 20:44         ` Tony Lindgren
2015-02-02 22:48         ` Mike Turquette
2015-02-02 22:48           ` Mike Turquette
2015-02-02 23:11           ` Tony Lindgren
2015-02-02 23:11             ` Tony Lindgren
2015-02-02 22:41       ` Mike Turquette
2015-02-02 22:41         ` Mike Turquette
2015-02-02 22:52         ` Stephen Boyd
2015-02-02 22:52           ` Stephen Boyd
2015-02-03  7:03         ` Tomeu Vizoso
2015-02-03  7:03           ` Tomeu Vizoso
2015-02-03  8:46           ` Tero Kristo
2015-02-03  8:46             ` Tero Kristo
2015-02-03  8:46             ` Tero Kristo
2015-02-03 15:22             ` Tony Lindgren
2015-02-03 15:22               ` Tony Lindgren
2015-02-02 20:45     ` Stephen Boyd
2015-02-02 20:45       ` Stephen Boyd
2015-02-02 20:45       ` [Cocci] " Stephen Boyd
2015-02-02 21:31       ` Julia Lawall
2015-02-02 21:31         ` Julia Lawall
2015-02-02 21:31         ` [Cocci] " Julia Lawall
2015-02-02 22:35         ` Stephen Boyd
2015-02-02 22:35           ` Stephen Boyd
2015-02-02 22:35           ` [Cocci] " Stephen Boyd
2015-02-02 22:50           ` Mike Turquette
2015-02-02 22:50             ` Mike Turquette
2015-02-02 22:50             ` [Cocci] " Mike Turquette
2015-02-03 16:04             ` Quentin Lambert
2015-02-03 16:04               ` Quentin Lambert
2015-02-03 16:04               ` Quentin Lambert
2015-02-04 23:26               ` Stephen Boyd
2015-02-04 23:26                 ` Stephen Boyd
2015-02-04 23:26                 ` Stephen Boyd
2015-02-05 15:45                 ` Quentin Lambert
2015-02-05 15:45                   ` Quentin Lambert
2015-02-05 15:45                   ` Quentin Lambert
2015-02-05 16:02                   ` Quentin Lambert
2015-02-05 16:02                     ` Quentin Lambert
2015-02-05 16:02                     ` Quentin Lambert
2015-02-06  1:49                     ` Stephen Boyd
2015-02-06  1:49                       ` Stephen Boyd
2015-02-06  1:49                       ` Stephen Boyd
2015-02-06  2:15                   ` Stephen Boyd
2015-02-06  2:15                     ` Stephen Boyd
2015-02-06  2:15                     ` Stephen Boyd
2015-02-06  9:01                     ` Quentin Lambert
2015-02-06  9:01                       ` Quentin Lambert
2015-02-06  9:01                       ` Quentin Lambert
2015-02-06  9:12                       ` Julia Lawall
2015-02-06  9:12                         ` Julia Lawall
2015-02-06  9:12                         ` Julia Lawall
2015-02-06 17:15                         ` Stephen Boyd
2015-02-06 17:15                           ` Stephen Boyd
2015-02-06 17:15                           ` Stephen Boyd
2015-02-17 22:01                     ` Stephen Boyd
2015-02-17 22:01                       ` Stephen Boyd
2015-02-17 22:01                       ` Stephen Boyd
2015-03-12 17:20                       ` Sebastian Andrzej Siewior
2015-03-12 17:20                         ` Sebastian Andrzej Siewior
2015-03-12 17:20                         ` Sebastian Andrzej Siewior
2015-03-12 19:43                         ` Stephen Boyd
2015-03-12 19:43                           ` Stephen Boyd
2015-03-12 19:43                           ` Stephen Boyd
2015-03-13  3:29                           ` Shawn Guo
2015-03-13  3:29                             ` Shawn Guo
2015-03-13  3:29                             ` Shawn Guo
2015-03-13  8:20                             ` Sebastian Andrzej Siewior
2015-03-13  8:20                               ` Sebastian Andrzej Siewior
2015-03-13  8:20                               ` Sebastian Andrzej Siewior
2015-03-13 13:42                               ` Shawn Guo
2015-03-13 13:42                                 ` Shawn Guo
2015-03-13 13:42                                 ` Shawn Guo
2015-03-13 17:42                             ` Stephen Boyd
2015-03-13 17:42                               ` Stephen Boyd
2015-03-13 17:42                               ` Stephen Boyd
2015-02-05 19:44   ` Sylwester Nawrocki
2015-02-05 19:44     ` Sylwester Nawrocki
2015-02-05 20:06     ` Sylwester Nawrocki [this message]
2015-02-05 20:06       ` Sylwester Nawrocki
2015-02-05 20:07     ` Stephen Boyd
2015-02-05 20:07       ` Stephen Boyd
2015-02-05 22:14       ` Stephen Boyd
2015-02-05 22:14         ` Stephen Boyd
2015-02-06  0:42         ` Russell King - ARM Linux
2015-02-06  0:42           ` Russell King - ARM Linux
2015-02-06  1:35           ` Stephen Boyd
2015-02-06  1:35             ` Stephen Boyd
2015-02-06 13:39             ` Russell King - ARM Linux
2015-02-06 13:39               ` Russell King - ARM Linux
2015-02-06 19:30               ` Stephen Boyd
2015-02-06 19:30                 ` Stephen Boyd
2015-02-06 19:37                 ` Russell King - ARM Linux
2015-02-06 19:37                   ` Russell King - ARM Linux
2015-02-06 19:41                   ` Stephen Boyd
2015-02-06 19:41                     ` Stephen Boyd
2015-02-19 21:32                 ` Mike Turquette
2015-02-19 21:32                   ` Mike Turquette
2015-02-24 14:08                   ` Russell King - ARM Linux
2015-02-24 14:08                     ` Russell King - ARM Linux
2015-02-25  2:18                     ` Mike Turquette
2015-02-25  2:18                       ` Mike Turquette
2015-01-23 11:03 ` [PATCH v13 4/6] clk: Add rate constraints to clocks Tomeu Vizoso
2015-01-23 11:03   ` Tomeu Vizoso
2015-01-23 11:03   ` Tomeu Vizoso
2015-01-29 13:31   ` Geert Uytterhoeven
2015-01-29 13:31     ` Geert Uytterhoeven
2015-01-29 13:31     ` Geert Uytterhoeven
2015-01-29 13:31     ` Geert Uytterhoeven
2015-01-29 19:13     ` Stephen Boyd
2015-01-29 19:13       ` Stephen Boyd
2015-01-29 19:13       ` Stephen Boyd
2015-01-29 19:13       ` Stephen Boyd
2015-01-31  1:31       ` Stephen Boyd
2015-01-31  1:31         ` Stephen Boyd
2015-01-31  1:31         ` Stephen Boyd
2015-01-31  1:31         ` Stephen Boyd
2015-01-31  1:31         ` Stephen Boyd
2015-01-31 18:36         ` Tomeu Vizoso
2015-01-31 18:36           ` Tomeu Vizoso
2015-01-31 18:36           ` Tomeu Vizoso
2015-01-31 18:36           ` Tomeu Vizoso
2015-01-31 18:36           ` Tomeu Vizoso
2015-02-01 22:18           ` Mike Turquette
2015-02-01 22:18             ` Mike Turquette
2015-02-01 22:18             ` Mike Turquette
2015-02-01 22:18             ` Mike Turquette
2015-02-01 22:18             ` Mike Turquette
2015-02-02  7:59             ` Geert Uytterhoeven
2015-02-02  7:59               ` Geert Uytterhoeven
2015-02-02  7:59               ` Geert Uytterhoeven
2015-02-02  7:59               ` Geert Uytterhoeven
2015-02-02  7:59               ` Geert Uytterhoeven
2015-02-02 16:12               ` Tony Lindgren
2015-02-02 16:12                 ` Tony Lindgren
2015-02-02 16:12                 ` Tony Lindgren
2015-02-02 16:12                 ` Tony Lindgren
2015-02-02 16:12                 ` Tony Lindgren
2015-02-02 17:46                 ` Mike Turquette
2015-02-02 17:46                   ` Mike Turquette
2015-02-02 17:46                   ` Mike Turquette
2015-02-02 17:46                   ` Mike Turquette
2015-02-02 17:46                   ` Mike Turquette
2015-02-02 17:49                   ` Russell King - ARM Linux
2015-02-02 17:49                     ` Russell King - ARM Linux
2015-02-02 17:49                     ` Russell King - ARM Linux
2015-02-02 17:49                     ` Russell King - ARM Linux
2015-02-02 17:49                     ` Russell King - ARM Linux
2015-02-02 19:21                   ` Tony Lindgren
2015-02-02 19:21                     ` Tony Lindgren
2015-02-02 19:21                     ` Tony Lindgren
2015-02-02 19:21                     ` Tony Lindgren
2015-02-02 19:21                     ` Tony Lindgren
2015-02-02 20:47                     ` Tony Lindgren
2015-02-02 20:47                       ` Tony Lindgren
2015-02-02 20:47                       ` Tony Lindgren
2015-02-02 20:47                       ` Tony Lindgren
2015-02-02 20:47                       ` Tony Lindgren
2015-01-23 11:03 ` [PATCH v13 5/6] clkdev: Export clk_register_clkdev Tomeu Vizoso
2015-01-23 11:03   ` Tomeu Vizoso
2015-02-03 17:35   ` Andy Shevchenko
2015-02-03 17:35     ` Andy Shevchenko
2015-02-03 17:43     ` Andy Shevchenko
2015-02-03 17:43       ` Andy Shevchenko
2015-01-23 11:03 ` [PATCH v13 6/6] clk: Add module for unit tests Tomeu Vizoso
2015-01-27  0:55 ` [PATCH v13 0/6] Per-user clock constraints Stephen Boyd
2015-01-27  6:29   ` Tomeu Vizoso
2015-01-28  6:59   ` Tomeu Vizoso
     [not found]     ` <20150129022633.22722.78592@quantum>
2015-01-29  6:41       ` Tomeu Vizoso
2015-01-29 14:29         ` Mike Turquette

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=54D3CD58.4030902@samsung.com \
    --to=s.nawrocki@samsung.com \
    --cc=javier.martinez@collabora.co.uk \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=mturquette@linaro.org \
    --cc=paul@pwsan.com \
    --cc=sboyd@codeaurora.org \
    --cc=tomeu.vizoso@collabora.com \
    --cc=tony@atomide.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.