From be4b9cfbd10713cb95bfc256d258fddbaa4565ac Mon Sep 17 00:00:00 2001 From: Shuya MAEDA Date: Wed, 28 Jun 2006 01:40:35 -0700 Subject: [PATCH] --- yaml --- r: 31331 b: refs/heads/master c: 4ee303dfeac6451b402e3d8512723d3a0f861857 h: refs/heads/master i: 31329: 4d1281305abeef3637b252fd4d475c32c80e9adf 31327: 939a67a7bfafb93c0039cd67136cd6ba3774f96b v: v3 --- [refs] | 2 +- trunk/include/net/pkt_sched.h | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index ced3c9a3d1f9..0f16e6ce218b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3d3a85337937bb5e3db676eeb4f3bf7f02533b44 +refs/heads/master: 4ee303dfeac6451b402e3d8512723d3a0f861857 diff --git a/trunk/include/net/pkt_sched.h b/trunk/include/net/pkt_sched.h index 75b5b9333fc7..1925c65e617b 100644 --- a/trunk/include/net/pkt_sched.h +++ b/trunk/include/net/pkt_sched.h @@ -169,17 +169,23 @@ psched_tod_diff(int delta_sec, int bound) #define PSCHED_TADD2(tv, delta, tv_res) \ ({ \ - int __delta = (tv).tv_usec + (delta); \ - (tv_res).tv_sec = (tv).tv_sec; \ - if (__delta > USEC_PER_SEC) { (tv_res).tv_sec++; __delta -= USEC_PER_SEC; } \ + int __delta = (delta); \ + (tv_res) = (tv); \ + while(__delta >= USEC_PER_SEC){ \ + (tv_res).tv_sec++; \ + __delta -= USEC_PER_SEC; \ + } \ (tv_res).tv_usec = __delta; \ }) #define PSCHED_TADD(tv, delta) \ ({ \ - (tv).tv_usec += (delta); \ - if ((tv).tv_usec > USEC_PER_SEC) { (tv).tv_sec++; \ - (tv).tv_usec -= USEC_PER_SEC; } \ + int __delta = (delta); \ + while(__delta >= USEC_PER_SEC){ \ + (tv).tv_sec++; \ + __delta -= USEC_PER_SEC; \ + } \ + (tv).tv_usec = __delta; \ }) /* Set/check that time is in the "past perfect";