Messages in this thread Patch in this message | | | Date | Tue, 15 May 2007 10:17:58 +0200 | From | Eric Dumazet <> | Subject | Re: [Bugme-new] [Bug 8479] New: gettimeofday returning 1000000 in tv_usec on core2duo |
| |
On Tue, 15 May 2007 09:22:47 +0200 Andi Kleen <ak@suse.de> wrote:
> > > > > > > I remember I already hit this and corrected it > > > > > > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blobdi > > >ff;f=arch/x86_64/kernel/vsyscall.c;h=dc32cef961950915fbaa185e36ab802d5f7ce > > >a3b;hp=ba330f87067996a17495f7d03466d646c718b52c;hb=c8118c6c07f2edfd697aaa0 > > >b93e08c3b65a5a675;hpb=272a3713bb9e302e0455c894c41180a482d2c8a3 > > > > Oh, OK. > > > > > Maybe a stable push is necessary ? > > > > yup. Please always think of -stable when preparing fixes. I'm sure many > > useful fixes are slipping past simply because those who _are_ looking out > > for backportable fixes are missing things. > > > > Greg, Chris: please consider c8118c6c07f2edfd697aaa0b93e08c3b65a5a675 > > for -stable, if it isn't already there. > > The full patch is overkill because 99% of it is an totally unrelated > optimization. Only the > -> >= change should be backported
OK, here is the fix only patch, for linux-2.6.21-stable only, since 2.6.22 is already fixed.
[PATCH] x86_64 : Fix vgettimeofday()
vgettimeofday() may return some bad timeval values, (tv_usec = 1000000), because of a wrong compare.
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
--- arch/x86_64/kernel/vsyscall.c +++ arch/x86_64/kernel/vsyscall.c @@ -132,7 +132,7 @@ static __always_inline void do_vgettimeo /* convert to usecs and add to timespec: */ tv->tv_usec += nsec_delta / NSEC_PER_USEC; - while (tv->tv_usec > USEC_PER_SEC) { + while (tv->tv_usec >= USEC_PER_SEC) { tv->tv_sec += 1; tv->tv_usec -= USEC_PER_SEC; } - 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/
| |