diff options
author | jeff <jeff@FreeBSD.org> | 2002-03-20 02:27:55 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2002-03-20 02:27:55 +0000 |
commit | 290c91ea66f03f6990d6543be3fbbfc8ac015f28 (patch) | |
tree | 0065e60a421b4e88bffcc4afbbc69c37a056d31a | |
parent | 732ca9dc6a28f477a9936d8ef375a0d3f338070d (diff) | |
download | FreeBSD-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.c | 3 |
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); |