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. Regards Patrick PS: I'll submit the patch to break compilation for unconverted users ASAP. - 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