summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_time.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1998-04-04 18:46:13 +0000
committerphk <phk@FreeBSD.org>1998-04-04 18:46:13 +0000
commit9736ec2fbf9e02ec93125f4e016a7aa251b6225a (patch)
tree096523a7fd5704a2366e23ab34db87d92d4ca7b6 /sys/kern/kern_time.c
parent7d5c35ecb4060f3d883917be03f1403a66dfc82f (diff)
downloadFreeBSD-src-9736ec2fbf9e02ec93125f4e016a7aa251b6225a.zip
FreeBSD-src-9736ec2fbf9e02ec93125f4e016a7aa251b6225a.tar.gz
Handle double fraction overflow in nano & microtime functions (spotted by Bruce)
Use tvtohz() a place where it fits.
Diffstat (limited to 'sys/kern/kern_time.c')
-rw-r--r--sys/kern/kern_time.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/sys/kern/kern_time.c b/sys/kern/kern_time.c
index 786f67f..c6407f6 100644
--- a/sys/kern/kern_time.c
+++ b/sys/kern/kern_time.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)kern_time.c 8.1 (Berkeley) 6/10/93
- * $Id: kern_time.c,v 1.44 1998/03/30 09:50:23 phk Exp $
+ * $Id: kern_time.c,v 1.45 1998/04/04 13:25:25 phk Exp $
*/
#include <sys/param.h>
@@ -536,12 +536,9 @@ setitimer(p, uap)
if (uap->which == ITIMER_REAL) {
if (timerisset(&p->p_realtimer.it_value))
untimeout(realitexpire, (caddr_t)p, p->p_ithandle);
- if (timerisset(&aitv.it_value)) {
- getmicrotime(&ctv);
- timevaladd(&aitv.it_value, &ctv);
+ if (timerisset(&aitv.it_value))
p->p_ithandle = timeout(realitexpire, (caddr_t)p,
- hzto(&aitv.it_value));
- }
+ tvtohz(&aitv.it_value));
p->p_realtimer = aitv;
} else
p->p_stats->p_timer[uap->which] = aitv;
OpenPOWER on IntegriCloud