diff options
author | John Baldwin <jhb@FreeBSD.org> | 2008-08-27 17:31:56 +0000 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2008-08-27 17:31:56 +0000 |
commit | 986ff4e0530df92874f90ffb4ea118c09dc10cf1 (patch) | |
tree | cd4ed9ddbf62577571f10fa58fabe1083c733d05 | |
parent | c28fe84f402852d09dd5db208e9f2a0241bd3cfd (diff) |
Notes
-rw-r--r-- | sys/kern/subr_smp.c | 5 |
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) |