From: "H. Peter Anvin" <hpa@zytor.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: David Brownell <david-b@pacbell.net>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.arm.linux.org.uk
Subject: Re: (regression) kernel/timeconst.h bugs with HZ=128
Date: Tue, 26 Feb 2008 16:34:04 -0800 [thread overview]
Message-ID: <47C4AFFC.7090500@zytor.com> (raw)
In-Reply-To: <20080226160958.3f58a5c1.akpm@linux-foundation.org>
Andrew Morton wrote:
> On Tue, 26 Feb 2008 10:32:24 -0800 David Brownell <david-b@pacbell.net> wrote:
>
>> I see these warnings on 32 bit ARM systems:
>>
>> CC kernel/time.o
>> kernel/time.c: In function 'msecs_to_jiffies':
>> kernel/time.c:472: warning: integer constant is too large for 'long' type
>> kernel/time.c: In function 'usecs_to_jiffies':
>> kernel/time.c:487: warning: integer constant is too large for 'long' type
>>
>> Line 472:
>> return ((u64)MSEC_TO_HZ_MUL32 * m + MSEC_TO_HZ_ADJ32)
>> line 487:
>> return ((u64)USEC_TO_HZ_MUL32 * u + USEC_TO_HZ_ADJ32)
>>
>> The problem seems to be that these constants from kernel/timeconst.h
>> have too many digits:
>>
>> #define ONLY_THIRTYTWO_BITS 0x01234567
>>
>> #define MSEC_TO_HZ_ADJ32 0x3f7ced916
>> #define USEC_TO_HZ_ADJ32 0xfffbce4217d
>>
>> Those *_ADJ32 constants should have "ULL" suffixes, yes?
>> Adding that by hand resolves the problem, but only until
>> the next time that header file gets regenerated.
>>
>> Someone with observable Perl-fu should fix this ...
>>
>
<barf>
The real issue is that we don't have any equivalent to the UINTxx_C()
creation macros in Linux, and even though we're using a cast -- which is
totally correct -- makes gcc issue a (spurious) warning.
The right thing would be to create _C() macros and use those in the C
code, i.e. UINT64_C(MSEC_TO_HZ_MUL32).
I'll write up a patch, but probably not today.
-hpa
next prev parent reply other threads:[~2008-02-27 0:39 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-26 18:32 (regression) kernel/timeconst.h bugs with HZ=128 David Brownell
2008-02-27 0:09 ` Andrew Morton
2008-02-27 0:34 ` H. Peter Anvin [this message]
-- strict thread matches above, loose matches on Subject: below --
2008-04-03 22:49 2.6.25-rc8-git2: Reported regressions from 2.6.24 Rafael J. Wysocki
[not found] ` <pdYe6zNQVl.A.-CB.KGW9HB@albercik>
2008-04-06 7:29 ` (regression) kernel/timeconst.h bugs with HZ=128 David Brownell
2008-04-06 17:58 ` H. Peter Anvin
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=47C4AFFC.7090500@zytor.com \
--to=hpa@zytor.com \
--cc=akpm@linux-foundation.org \
--cc=david-b@pacbell.net \
--cc=linux-arm-kernel@lists.arm.linux.org.uk \
--cc=linux-kernel@vger.kernel.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 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.