summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Hellstrom <daniel@gaisler.com>2014-05-23 14:27:12 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-05-23 15:49:37 +0200
commit0af322c51eaac6d169d3dfc96ee67d44c77b21d5 (patch)
treed40bf77963f2301efb5b011bf9f8efcd1377e027
parentscore: PR2179: Fix initially locked PCP mutexes (diff)
downloadrtems-0af322c51eaac6d169d3dfc96ee67d44c77b21d5.tar.bz2
SMP: make IPI fatal code unique
The same smp fatal code is used in percpu _Per_CPU_State_change(). In order to determine which CPU requested a fatal shutdown and which CPU responds to it a unique code should be used. A unique code makes it also possible to handle the CPUs differently in the fatal exception handler.
-rw-r--r--cpukit/score/include/rtems/score/smpimpl.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/cpukit/score/include/rtems/score/smpimpl.h b/cpukit/score/include/rtems/score/smpimpl.h
index ac04833aa7..4ef5045805 100644
--- a/cpukit/score/include/rtems/score/smpimpl.h
+++ b/cpukit/score/include/rtems/score/smpimpl.h
@@ -59,7 +59,8 @@ typedef enum {
SMP_FATAL_BOOT_PROCESSOR_NOT_ASSIGNED_TO_SCHEDULER,
SMP_FATAL_MANDATORY_PROCESSOR_NOT_PRESENT,
SMP_FATAL_MULTITASKING_START_ON_UNASSIGNED_PROCESSOR,
- SMP_FATAL_START_OF_MANDATORY_PROCESSOR_FAILED
+ SMP_FATAL_START_OF_MANDATORY_PROCESSOR_FAILED,
+ SMP_FATAL_SHUTDOWN_RESPONSE
} SMP_Fatal_code;
static inline void _SMP_Fatal( SMP_Fatal_code code )
@@ -140,7 +141,7 @@ static inline void _SMP_Inter_processor_interrupt_handler( void )
);
if ( ( message & SMP_MESSAGE_SHUTDOWN ) != 0 ) {
- rtems_fatal( RTEMS_FATAL_SOURCE_SMP, SMP_FATAL_SHUTDOWN );
+ rtems_fatal( RTEMS_FATAL_SOURCE_SMP, SMP_FATAL_SHUTDOWN_RESPONSE );
/* does not continue past here */
}