summaryrefslogtreecommitdiffstats
path: root/sys/alpha
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 /sys/alpha
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.
Diffstat (limited to 'sys/alpha')
-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