diff options
author | marius <marius@FreeBSD.org> | 2011-07-05 20:05:06 +0000 |
---|---|---|
committer | marius <marius@FreeBSD.org> | 2011-07-05 20:05:06 +0000 |
commit | 81d1868c0575b19d34b948cd5f807e5bf4e6763c (patch) | |
tree | 7af3feeea8ad0cc2927633ae1ee10c09870579d7 | |
parent | bcf7dddb7b505d26af58568329a5947026339f28 (diff) | |
download | FreeBSD-src-81d1868c0575b19d34b948cd5f807e5bf4e6763c.zip FreeBSD-src-81d1868c0575b19d34b948cd5f807e5bf4e6763c.tar.gz |
Remove the IDR_CHEETAH_MAX_BN_PAIRS limit from cheetah_ipi_selected().
This is just a simple approach. For reasons unknown OpenSolaris uses a
more sophisticated one involving IPIing the remaining CPUs in reverse
order after the first batch of 32.
-rw-r--r-- | sys/sparc64/sparc64/mp_machdep.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/sparc64/sparc64/mp_machdep.c b/sys/sparc64/sparc64/mp_machdep.c index 4fc8562..e5910e0 100644 --- a/sys/sparc64/sparc64/mp_machdep.c +++ b/sys/sparc64/sparc64/mp_machdep.c @@ -139,8 +139,6 @@ static cpu_ipi_single_t spitfire_ipi_single; SYSINIT(cpu_mp_unleash, SI_SUB_SMP, SI_ORDER_FIRST, cpu_mp_unleash, NULL); -CTASSERT(MAXCPU <= IDR_CHEETAH_MAX_BN_PAIRS); - void mp_init(u_int cpu_impl) { @@ -696,6 +694,8 @@ cheetah_ipi_selected(cpuset_t cpus, u_long d0, u_long d1, u_long d2) ASI_SDB_INTR_W, 0); membar(Sync); bnp++; + if (bnp == IDR_CHEETAH_MAX_BN_PAIRS) + break; } } while (((ids = ldxa(0, ASI_INTR_DISPATCH_STATUS)) & |