summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2008-08-27 17:31:56 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2008-08-27 17:31:56 +0000
commit986ff4e0530df92874f90ffb4ea118c09dc10cf1 (patch)
treecd4ed9ddbf62577571f10fa58fabe1083c733d05
parentc28fe84f402852d09dd5db208e9f2a0241bd3cfd (diff)
Notes
-rw-r--r--sys/kern/subr_smp.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/kern/subr_smp.c b/sys/kern/subr_smp.c
index 91ed51bc863c..54e042d2a9bf 100644
--- a/sys/kern/subr_smp.c
+++ b/sys/kern/subr_smp.c
@@ -372,7 +372,7 @@ smp_rendezvous_cpus(cpumask_t map,
mtx_lock_spin(&smp_ipi_mtx);
/* set static function pointers */
- smp_rv_cpumask = map & ~(1 << curcpu);
+ smp_rv_cpumask = map;
smp_rv_setup_func = setup_func;
smp_rv_action_func = action_func;
smp_rv_teardown_func = teardown_func;
@@ -382,11 +382,10 @@ smp_rendezvous_cpus(cpumask_t map,
atomic_store_rel_int(&smp_rv_waiters[0], 0);
/* signal other processors, which will enter the IPI with interrupts off */
- ipi_selected(map, IPI_RENDEZVOUS);
+ ipi_selected(map & ~(1 << curcpu), IPI_RENDEZVOUS);
/* Check if the current CPU is in the map */
if ((map & (1 << curcpu)) != 0)
- /* call executor function for the current CPU */
smp_rendezvous_action();
if (teardown_func == smp_no_rendevous_barrier)