RE: [PATCH -mm] timer: parenthesis fix in tbase_get_deferrable() etc.

From: Pallipadi, Venkatesh
Date: Wed May 09 2007 - 11:59:33 EST



>-----Original Message-----
>From: Jarek Poplawski [mailto:jarkao2@xxxxx]
>Sent: Tuesday, May 08, 2007 10:32 PM
>To: Andrew Morton
>Cc: Pallipadi, Venkatesh; linux-kernel@xxxxxxxxxxxxxxx; Oleg Nesterov
>Subject: Re: [PATCH -mm] timer: parenthesis fix in
>tbase_get_deferrable() etc.
>
>On Tue, May 08, 2007 at 04:33:58PM -0700, Andrew Morton wrote:
>> On Tue, 8 May 2007 12:33:48 +0200
>> Jarek Poplawski <jarkao2@xxxxx> wrote:
>>
>> >
>> > Signed-off-by: Jarek Poplawski <jarkao2@xxxxx>
>> >
>> > ---
>> >
>> > diff -Nurp 2.6.21-mm1-/kernel/timer.c 2.6.21-mm1/kernel/timer.c
>> > --- 2.6.21-mm1-/kernel/timer.c 2007-05-08
>11:54:48.000000000 +0200
>> > +++ 2.6.21-mm1/kernel/timer.c 2007-05-08
>12:05:11.000000000 +0200
>> > @@ -92,24 +92,24 @@ static DEFINE_PER_CPU(tvec_base_t *, tve
>> > /* Functions below help us manage 'deferrable' flag */
>> > static inline unsigned int tbase_get_deferrable(tvec_base_t *base)
>> > {
>> > - return ((unsigned int)(unsigned long)base &
>TBASE_DEFERRABLE_FLAG);
>> > + return (unsigned int)((unsigned long)base &
>TBASE_DEFERRABLE_FLAG);
>> > }
>...
>> The change makes sense, but does it actually "fix" anything?
>>
>
>Yes - this first place fixes logical error, so it's a sin
>- even if not punishable in practice. (It's also unnecessary
>test for long to int conversion.)
>

I am sorry, I don't understand. What is the logical error in the first
one?

Actually, your change makes it different from what was originally
indended.
Original intention was to type convert base to a 32 bit value and
bitwise& with FLAG. Even though compiler may optimize both the above to
same code, I don't see what is the error.

Thanks,
Venki
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/