summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2002-03-20 02:27:55 +0000
committerjeff <jeff@FreeBSD.org>2002-03-20 02:27:55 +0000
commit290c91ea66f03f6990d6543be3fbbfc8ac015f28 (patch)
tree0065e60a421b4e88bffcc4afbbc69c37a056d31a
parent732ca9dc6a28f477a9936d8ef375a0d3f338070d (diff)
downloadFreeBSD-src-290c91ea66f03f6990d6543be3fbbfc8ac015f28.zip
FreeBSD-src-290c91ea66f03f6990d6543be3fbbfc8ac015f28.tar.gz
Force the boot cpu to wait for the APs to finish starting up. This eliminates
a race where the AP and the boot cpu were trying to printf at the same time, which was confusing the console too much for it to continue working.
-rw-r--r--sys/alpha/alpha/mp_machdep.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/alpha/alpha/mp_machdep.c b/sys/alpha/alpha/mp_machdep.c
index 9ad8966..62f0efc 100644
--- a/sys/alpha/alpha/mp_machdep.c
+++ b/sys/alpha/alpha/mp_machdep.c
@@ -535,6 +535,9 @@ release_aps(void *dummy __unused)
if (bootverbose)
printf("%s: releasing secondary CPUs\n", __func__);
atomic_store_rel_int(&aps_ready, 1);
+
+ while (smp_started == 0)
+ ; /* nothing */
}
SYSINIT(start_aps, SI_SUB_SMP, SI_ORDER_FIRST, release_aps, NULL);
OpenPOWER on IntegriCloud