summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorDale Rahn <drahn@cvs.openbsd.org>2001-06-09 04:51:17 +0000
committerDale Rahn <drahn@cvs.openbsd.org>2001-06-09 04:51:17 +0000
commitac1e3f4e3790bb63311ac18d0e18486f2bd65bcb (patch)
tree0f4117c4c66c99c098a6008fa021268155d9773c /sys
parent9f29cc2d2d7387fff703a2acf03d4b57ba77f62a (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.c8
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
*/