public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: mturquette@linaro.org (Mike Turquette)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4] clk: allow reentrant calls into the clk framework
Date: Wed, 27 Mar 2013 20:00:38 -0700	[thread overview]
Message-ID: <20130328030038.5161.14912@quantum> (raw)
In-Reply-To: <20130327225610.GR4977@n2100.arm.linux.org.uk>

Quoting Russell King - ARM Linux (2013-03-27 15:56:10)
> On Wed, Mar 27, 2013 at 12:09:43AM -0700, Mike Turquette wrote:
> > +     /* set context for any reentrant calls */
> > +     atomic_set(&prepare_context, (int) get_current());
> ...
> > +     if (mutex_is_locked(&prepare_lock))
> > +             if ((void *) atomic_read(&prepare_context) == get_current())
> > +                     return true;
> 
> If you really want to do it like this, then the _correct_ way to do it
> is:
> 
>                 if (atomic_read(&prepare_context) == (int)get_current())
> 
> So that any effects from the cast are the same in both parts.  Otherwise,
> you will be running into the possibility that a cast could do something
> like truncate the returned value, resulting in the test condition using
> pointers always being false.
> 
> It's not that much of a problem on ARM, but it's a matter of good
> programming discpline that such issues are avoided.
> 
> Even better would be to cast it to unsigned long - this is the value
> which the atomic types use, and that is less likely to be truncated.
> It also helps to avoid the possibility of compilers complaining about
> a narrowing cast too - especially as the entire Linux kernel assumes
> that pointers can be cast to unsigned long and back again with no loss.

The atomics and casts will go away in the next version but the insights
are useful.  Thanks for the review.

Regards,
Mike

  reply	other threads:[~2013-03-28  3:00 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-27  7:09 [PATCH v4] clk: allow reentrant calls into the clk framework Mike Turquette
2013-03-27  9:08 ` Laurent Pinchart
2013-03-27 15:06   ` Mike Turquette
2013-03-27 17:12     ` Thomas Gleixner
2013-03-27  9:40 ` Thomas Gleixner
2013-03-27  9:55   ` Viresh Kumar
2013-03-27 10:03     ` Ulf Hansson
2013-03-27 11:09       ` Thomas Gleixner
2013-03-27 14:25         ` Mike Turquette
2013-03-27  9:59   ` Laurent Pinchart
2013-03-27 11:24 ` Thomas Gleixner
2013-03-27 16:47   ` Mike Turquette
2013-03-27 17:09     ` Thomas Gleixner
2013-03-27 22:56 ` Russell King - ARM Linux
2013-03-28  3:00   ` Mike Turquette [this message]
2013-03-28  4:45 ` [PATCH v5 0/2] reentrancy in the common " Mike Turquette
2013-03-28  4:45   ` [PATCH 1/2] clk: abstract locking out into helper functions Mike Turquette
2013-03-28  9:31     ` Thomas Gleixner
2013-03-28  4:45   ` [PATCH 2/2] clk: allow reentrant calls into the clk framework Mike Turquette
2013-03-28  9:33     ` Thomas Gleixner
2013-03-28 15:23       ` Mike Turquette
2013-03-28 10:44   ` [PATCH v5 0/2] reentrancy in the common " Laurent Pinchart
2013-03-28 20:59   ` [PATCH v6 " Mike Turquette
2013-03-28 20:59     ` [PATCH 1/2] clk: abstract locking out into helper functions Mike Turquette
2013-04-02  9:23       ` Ulf Hansson
2013-03-28 20:59     ` [PATCH 2/2] clk: allow reentrant calls into the clk framework Mike Turquette
2013-04-02  9:35       ` Ulf Hansson

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=20130328030038.5161.14912@quantum \
    --to=mturquette@linaro.org \
    --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