From f8ff2a011cad523453cff8208b3dbd82aa66a110 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 17 Feb 2014 14:31:32 +0100 Subject: score: Delete bsp_smp_broadcast_interrupt() Since the per-CPU SMP lock must be acquired and released to send the message a single interrupt broadcast operations offers no benefits. If synchronization is required, then a SMP barrier must be used anyway. --- cpukit/score/src/smp.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'cpukit/score/src/smp.c') diff --git a/cpukit/score/src/smp.c b/cpukit/score/src/smp.c index 612c6e9044..f3aa25f011 100644 --- a/cpukit/score/src/smp.c +++ b/cpukit/score/src/smp.c @@ -19,6 +19,7 @@ #endif #include +#include #include #include #include @@ -102,18 +103,13 @@ void _SMP_Broadcast_message( uint32_t message ) uint32_t ncpus = _SMP_Get_processor_count(); uint32_t cpu; + _Assert_Thread_dispatching_repressed(); + for ( cpu = 0 ; cpu < ncpus ; ++cpu ) { if ( cpu != self ) { - Per_CPU_Control *per_cpu = _Per_CPU_Get_by_index( cpu ); - ISR_Level level; - - _Per_CPU_ISR_disable_and_acquire( per_cpu, level ); - per_cpu->message |= message; - _Per_CPU_Release_and_ISR_enable( per_cpu, level ); + _SMP_Send_message( cpu, message ); } } - - bsp_smp_broadcast_interrupt(); } void _SMP_Request_other_cores_to_perform_first_context_switch( void ) -- cgit v1.2.3