PERFORCE change 138327 for review
    John Birrell 
    jb at FreeBSD.org
       
    Sun Mar 23 03:47:59 UTC 2008
    
    
  
http://perforce.freebsd.org/chv.cgi?CH=138327
Change 138327 by jb at jb_freebsd1 on 2008/03/23 03:47:53
	Ensure the sync includes the current CPU.
	
	Fix the bug where the current CPU would get called twice,
Affected files ...
.. //depot/projects/dtrace/src/sys/kern/subr_smp.c#13 edit
Differences ...
==== //depot/projects/dtrace/src/sys/kern/subr_smp.c#13 (text+ko) ====
@@ -376,7 +376,7 @@
 	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;
@@ -386,11 +386,10 @@
 	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)
    
    
More information about the p4-projects
mailing list