From: Gabriel Paubert <paubert@iram.es>
To: Andrew Morton <akpm@osdl.org>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: [PATCH] fix gcc4 warning in asm-ppc/time.h
Date: Thu, 4 Aug 2005 07:54:59 +0200 [thread overview]
Message-ID: <20050804055459.GA19874@iram.es> (raw)
In-Reply-To: <20050803221517.21b54d7e.akpm@osdl.org>
On Wed, Aug 03, 2005 at 10:15:17PM -0700, Andrew Morton wrote:
> Christoph Hellwig <hch@lst.de> wrote:
> >
> > A function must not return a const value, instead use
> > __attribute_const__.
> >
> >
> > Index: linux-2.6/include/asm/time.h
> > ===================================================================
> > --- linux-2.6.orig/include/asm/time.h 2005-04-30 10:17:19.000000000 +0200
> > +++ linux-2.6/include/asm/time.h 2005-08-01 11:57:12.000000000 +0200
> > @@ -10,6 +10,7 @@
> > #define __ASM_TIME_H__
> >
> > #include <linux/config.h>
> > +#include <linux/compiler.h>
> > #include <linux/types.h>
> > #include <linux/rtc.h>
> > #include <linux/threads.h>
> > @@ -58,7 +59,7 @@
> > /* Accessor functions for the timebase (RTC on 601) registers. */
> > /* If one day CONFIG_POWER is added just define __USE_RTC as 1 */
> > #ifdef CONFIG_6xx
> > -extern __inline__ int const __USE_RTC(void) {
> > +extern __inline__ int __attribute_const__ __USE_RTC(void) {
> > return (mfspr(SPRN_PVR)>>16) == 1;
> > }
> > #else
>
> Do we really want to do this? The above implies that mfspr(SPRN_PVR) will
> return the same value across the entire uptime of the kernel. Is that
> true?
Yes, it is a read-only register. PVR means processor version register
and is linked to the revision of the silicon. Besides that it is
only used in this context to check for processors of the 601 family
(the very first PPC processors). Nobody expects them to be hotpluggable,
nor even used in SMP systems for the matter.
>
> Why is this function paying with const anyway?
I believe that it was originally to tell the compiler to be
able to cache it across several tests (a good compiler
on PPC would even cache the result of the test in a condition
register to allow branch prediction to work optimally).
Otherwise the compiler would never cache it since mfspr
is a volatile asm.
However this was written in pre gcc2.95 days so my
memory may be failing.
Gabriel
next prev parent reply other threads:[~2005-08-04 5:55 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-02 9:55 [PATCH] fix gcc4 warning in asm-ppc/time.h Christoph Hellwig
2005-08-04 5:15 ` Andrew Morton
2005-08-04 5:54 ` Gabriel Paubert [this message]
2005-08-04 9:46 ` Benjamin Herrenschmidt
2005-08-04 10:19 ` Gabriel Paubert
2005-08-04 22:19 ` Paul Mackerras
2005-08-04 5:17 ` Andrew Morton
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=20050804055459.GA19874@iram.es \
--to=paubert@iram.es \
--cc=akpm@osdl.org \
--cc=linuxppc-dev@ozlabs.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).