Re: [PATCH] net/sunrpc: fix time conversion error

From: Nishanth Aravamudan
Date: Mon Aug 01 2005 - 19:13:05 EST


On 02.08.2005 [02:03:59 +0200], Patrick McHardy wrote:
> Nishanth Aravamudan wrote:
> > On 01.08.2005 [15:11:48 -0600], Josip Loncaric wrote:
> >
> >>Line 589 of linux-2.6.11.10/net/sunrpc/svcsock.c is obviously wrong:
> >>
> >> skb->stamp.tv_usec = xtime.tv_nsec * 1000;
> >>
> >>To convert nsec to usec, one should divide instead of multiplying:
> >>
> >> skb->stamp.tv_usec = xtime.tv_nsec / 1000;
> >>
> >>The same bug could be present in the latest kernels, although I haven't
> >>checked. This bug makes svc_udp_recvfrom() timestamps incorrect.
> >
> >
> > Agreed, the conversion is wrong. I think the code is buggy period, as it
> > accesses xtime without grabbing the xtime_lock first. Following patch
> > should fix both issues.
> >
> > Description: This function incorrectly multiplies a nanosecond value by
> > 1000, instead of dividing by 1000, to obtain a corresponding microsecond
> > value. Fix the math. Also, the function incorrectly accesses xtime
> > without using the xtime_lock. Fixed as well. Patch is compile-tested.
>
> Depending on in which release you want this patch included, you might
> want to redo it against Dave's net-2.6.14 tree. It includes a patch that
> changes skb->stamp to an offset against a base timestamp.

Ok, I'll try and get around to rediff'ing tonight or tomorrow. Thanks
for the feedback!

<snip>

> PS: I'll submit the patch to break compilation for unconverted users
> ASAP.

Thanks,
Nish
-
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/