diff options
author | 2007-11-12 21:00:22 +0000 | |
---|---|---|
committer | 2007-11-12 21:00:22 +0000 | |
commit | f761a30b0e9e7656bcb9204452b823253cdaf120 (patch) | |
tree | e304702f3be4bf34cf703e9ed1985057e4b88b6b | |
parent | Use isa_intr_establish() to establish the SCI interrupt handler; this makes (diff) | |
download | wireguard-openbsd-f761a30b0e9e7656bcb9204452b823253cdaf120.tar.xz wireguard-openbsd-f761a30b0e9e7656bcb9204452b823253cdaf120.zip |
Restart clock before invoking hardclock() and statclock(), otherwise they
drift in MP kernels.
-rw-r--r-- | sys/arch/mvme88k/mvme88k/m188_machdep.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/arch/mvme88k/mvme88k/m188_machdep.c b/sys/arch/mvme88k/mvme88k/m188_machdep.c index 8596b81c3ed..5b87553897e 100644 --- a/sys/arch/mvme88k/mvme88k/m188_machdep.c +++ b/sys/arch/mvme88k/mvme88k/m188_machdep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: m188_machdep.c,v 1.37 2007/11/12 19:59:07 miod Exp $ */ +/* $OpenBSD: m188_machdep.c,v 1.38 2007/11/12 21:00:22 miod Exp $ */ /* * Copyright (c) 1998, 1999, 2000, 2001 Steve Murphree, Jr. * Copyright (c) 1996 Nivas Madhur @@ -821,12 +821,12 @@ m188_clockintr(void *eframe) CIO_LOCK(); write_cio(CIO_CSR1, CIO_GCB | CIO_CIP); /* Ack the interrupt */ - hardclock(eframe); - /* restart counter */ write_cio(CIO_CSR1, CIO_GCB | CIO_TCB | CIO_IE); CIO_UNLOCK(); + hardclock(eframe); + #ifdef MULTIPROCESSOR /* * Send an IPI to all other processors, so they can get their @@ -849,8 +849,6 @@ m188_statintr(void *eframe) tmp = *(volatile u_int8_t *)DART_STOPC; tmp = *(volatile u_int8_t *)DART_ISR; - statclock((struct clockframe *)eframe); - /* * Compute new randomized interval. The intervals are * uniformly distributed on @@ -869,6 +867,8 @@ m188_statintr(void *eframe) *(volatile u_int8_t *)DART_CTLR = (newint & 0xff); tmp = *(volatile u_int8_t *)DART_STARTC; + statclock((struct clockframe *)eframe); + #ifdef MULTIPROCESSOR /* * Send an IPI to all other processors as well. |