summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src/interr.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-02-17 10:10:27 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-02-19 09:59:39 +0100
commit8a6de83fd833c4b0458ba27eb4883c53c1b1ecf4 (patch)
treeea45e29f7ca5cab0a54ad005e93f942079442814 /cpukit/score/src/interr.c
parentscore: Disable ISR in _Internal_error_Occurred() (diff)
downloadrtems-8a6de83fd833c4b0458ba27eb4883c53c1b1ecf4.tar.bz2
score: Move _SMP_Request_other_cores_to_shutdown()
Move _SMP_Request_other_cores_to_shutdown() invocation from rtems_shutdown_executive() to _Internal_error_Occurred() to allow a proper shutdown on SMP configurations even in the error case.
Diffstat (limited to 'cpukit/score/src/interr.c')
-rw-r--r--cpukit/score/src/interr.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/cpukit/score/src/interr.c b/cpukit/score/src/interr.c
index 9f52ce70cf..bb15e0cbe4 100644
--- a/cpukit/score/src/interr.c
+++ b/cpukit/score/src/interr.c
@@ -20,6 +20,7 @@
#include <rtems/score/interr.h>
#include <rtems/score/isrlevel.h>
+#include <rtems/score/smp.h>
#include <rtems/score/sysstate.h>
#include <rtems/score/userextimpl.h>
@@ -38,6 +39,8 @@ void _Internal_error_Occurred(
_ISR_Disable_without_giant( level );
(void) level;
+ _SMP_Request_other_cores_to_shutdown();
+
_User_extensions_Fatal( the_source, is_internal, the_error );
_Internal_errors_What_happened.the_source = the_source;