summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2019-01-08 08:39:42 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2019-01-09 10:35:31 +0100
commit1f2851867535aa24edfd8574b520f1b3ec22efc0 (patch)
tree99785719d8524f5054e92058ad0196fdd89b8540
parentSeparate task mode checks (diff)
downloadrtems-1f2851867535aa24edfd8574b520f1b3ec22efc0.tar.bz2
rtems: Allow to set ISR level 0 in SMP config
Update #3000.
-rw-r--r--cpukit/rtems/src/taskmode.c1
-rw-r--r--testsuites/smptests/smpunsupported01/init.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/cpukit/rtems/src/taskmode.c b/cpukit/rtems/src/taskmode.c
index 3e7ebe9d20..1767d7be84 100644
--- a/cpukit/rtems/src/taskmode.c
+++ b/cpukit/rtems/src/taskmode.c
@@ -56,6 +56,7 @@ rtems_status_code rtems_task_mode(
#if defined(RTEMS_SMP)
if (
( mask & RTEMS_INTERRUPT_MASK ) != 0
+ && _Modes_Get_interrupt_level( mode_set ) != 0
&& rtems_configuration_is_smp_enabled()
) {
return RTEMS_NOT_IMPLEMENTED;
diff --git a/testsuites/smptests/smpunsupported01/init.c b/testsuites/smptests/smpunsupported01/init.c
index ae85b2fc89..dd9b52a3c5 100644
--- a/testsuites/smptests/smpunsupported01/init.c
+++ b/testsuites/smptests/smpunsupported01/init.c
@@ -45,7 +45,7 @@ static void test(void)
mode = RTEMS_INTERRUPT_LEVEL(0);
if (mode == 0) {
sc = rtems_task_mode(mode, RTEMS_INTERRUPT_MASK, &mode);
- rtems_test_assert(sc == RTEMS_NOT_IMPLEMENTED);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
}
mode = RTEMS_INTERRUPT_LEVEL(1);