diff options
author | Dale Rahn <drahn@cvs.openbsd.org> | 2001-06-09 04:51:17 +0000 |
---|---|---|
committer | Dale Rahn <drahn@cvs.openbsd.org> | 2001-06-09 04:51:17 +0000 |
commit | ac1e3f4e3790bb63311ac18d0e18486f2bd65bcb (patch) | |
tree | 0f4117c4c66c99c098a6008fa021268155d9773c /sys | |
parent | 9f29cc2d2d7387fff703a2acf03d4b57ba77f62a (diff) |
Account for timer interrupts which occur while timer is "blocked".
Current change will cause the timer(s) missed to be noticed on the
next timer interrupt and then it will be accounted for.
This really should set a soft interrupt or an interrupt pending bit
for the timer, to more accurately reflect when the timer should have occurred.
System time should no longer be lost with this change.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/powerpc/powerpc/clock.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/arch/powerpc/powerpc/clock.c b/sys/arch/powerpc/powerpc/clock.c index 26b2256efff..8d7f665bf2d 100644 --- a/sys/arch/powerpc/powerpc/clock.c +++ b/sys/arch/powerpc/powerpc/clock.c @@ -1,4 +1,4 @@ -/* $OpenBSD: clock.c,v 1.11 2001/06/02 16:49:18 drahn Exp $ */ +/* $OpenBSD: clock.c,v 1.12 2001/06/09 04:51:16 drahn Exp $ */ /* $NetBSD: clock.c,v 1.1 1996/09/30 16:34:40 ws Exp $ */ /* @@ -229,9 +229,11 @@ decr_intr(frame) pri = splclock(); - if (pri & SPL_CLOCK) + if (pri & SPL_CLOCK) { tickspending += nticks; - else { + } else { + nticks += tickspending; + tickspending = 0; /* * Reenable interrupts */ |