summaryrefslogtreecommitdiffstats
path: root/sys/sparc64
diff options
context:
space:
mode:
authormarius <marius@FreeBSD.org>2011-07-05 20:05:06 +0000
committermarius <marius@FreeBSD.org>2011-07-05 20:05:06 +0000
commit81d1868c0575b19d34b948cd5f807e5bf4e6763c (patch)
tree7af3feeea8ad0cc2927633ae1ee10c09870579d7 /sys/sparc64
parentbcf7dddb7b505d26af58568329a5947026339f28 (diff)
downloadFreeBSD-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.
Diffstat (limited to 'sys/sparc64')
-rw-r--r--sys/sparc64/sparc64/mp_machdep.c4
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)) &
OpenPOWER on IntegriCloud