lkml.org 
[lkml]   [2006]   [Mar]   [5]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateMon, 06 Mar 2006 11:32:53 +0900 (JST)
SubjectRe: [PATCH] simplify update_times (avoid jiffies/jiffies_64 aliasing problem)
FromAtsushi Nemoto <>
>>>>> On Sun, 5 Mar 2006 10:13:56 +1100, Paul Mackerras <paulus@samba.org> said:
paul> I think the thing that makes most sense is:

paul> #define jiffies ((unsigned long) jiffies_64)

paul> and fix the few drivers that use `jiffies' as a local variable.
paul> No-one should be trying to write to jiffies, and the compiler
paul> will do the right thing for reads of jiffies on 32-bit platforms
paul> (it does on ppc32 at least).

I think making jiffies a non l-value is good, but this drops volatile
attribute from jiffies (since jiffies_64 is not volatile).  It might
break some codes which do polling on jiffies.

Something like this would be better?

#if defined(__BIG_ENDIAN) && BITS_PER_LONG == 32
#define jiffies (*((const volatile unsigned long *)&jiffies_64 + 1))
#else
#define jiffies (*(const volatile unsigned long *)&jiffies_64)
#endif

And if we do not want to depend on -fno-strict-aliasing, the union
would be The Only Neat Thing to Do.

---
Atsushi Nemoto
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2006-03-06 06:29    [W:0.543 / U:0.030 seconds]
©2003-2008 Jasper Spaans