The callout timer init code was using { SI_SUB_CPU , SI_ORDER_FIRST }.
authorMatthew Dillon <dillon@dragonflybsd.org>
Thu, 16 Jun 2005 04:43:27 +0000 (04:43 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Thu, 16 Jun 2005 04:43:27 +0000 (04:43 +0000)
Recent changes to conf/files caused the kernel to reorder the timer init
to prior the SMP cpu init, causing the timer init to believe that only
one cpu existed.

Fix the ordering by setting it to SI_ORDER_SECOND.

sys/kern/kern_timeout.c

index 4b14143..401837c 100644 (file)
@@ -70,7 +70,7 @@
  *
  *     From: @(#)kern_clock.c  8.5 (Berkeley) 1/21/94
  * $FreeBSD: src/sys/kern/kern_timeout.c,v 1.59.2.1 2001/11/13 18:24:52 archie Exp $
- * $DragonFly: src/sys/kern/kern_timeout.c,v 1.17 2005/06/07 19:08:55 hsu Exp $
+ * $DragonFly: src/sys/kern/kern_timeout.c,v 1.18 2005/06/16 04:43:27 dillon Exp $
  */
 /*
  * DRAGONFLY BGL STATUS
@@ -192,7 +192,10 @@ swi_softclock_setup(void *arg)
        }
 }
 
-SYSINIT(softclock_setup, SI_SUB_CPU, SI_ORDER_FIRST, swi_softclock_setup, NULL);
+/*
+ * Must occur after ncpus has been initialized.
+ */
+SYSINIT(softclock_setup, SI_SUB_CPU, SI_ORDER_SECOND, swi_softclock_setup, NULL);
 
 /*
  * This routine is called from the hardclock() (basically a FASTint/IPI) on