On Tue, 2007-04-24 at 14:57 -0700, Stephen Hemminger wrote:
> On Wed, 25 Apr 2007 06:55:39 +0900 (JST)
> YOSHIFUJI Hideaki / 吉藤英明 <[EMAIL PROTECTED]> wrote:
>
> > In article <[EMAIL PROTECTED]> (at Tue, 24 Apr 2007 10:04:20 -0700),
> > Stephen Hemminger <[EMAIL PROTECTED]> says:
> >
> > > Yoshifuji-san had the right idea, but ktime_to_us needs to be defined
> > > in a way that works on both 64 and 32bit platforms.
> >
> > No, this does not cure.
> > >
> > > +#define ktime_to_us(kt) ((kt).tv64 / NSEC_PER_SEC)
> > > +
> >
> > NSEC_PER_USEC?
>
> On 64 bit platforms, ktime stores nano-seconds in a 64 bit value, so
> this is correct.
Err, nsec_value / NSEC_PER_SEC results in seconds AFAICS
nsec_value / NSEC_PER_USEC gives you microseconds
> >
> > > +static inline s64 ktime_to_us(const ktime_t kt)
> > > +{
> > > + return (s64) kt.tv_sec * USEC_PER_SEC + kt.tv_nsec / NSEC_PER_USEC;
> > > +}
> > > +
> >
> > Please do NOT use division here, which was the source of the
> > linkage error, and the reason why I posted a patch to use
> > ktime_to_timeval().
>
> On 32 bit platforms, ktime stores as two 32 bit values. Therefore the
> division is only 32bit and therefore okay.
Nope.
#if BITS_PER_LONG != 64 && !defined(CONFIG_KTIME_SCALAR)
....
and on i386
config KTIME_SCALAR
bool
default y
so you take the
ktime_to_timeval is probably the right way for it.
tglx
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html