summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/src/taskcreate.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-06-16 07:28:58 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-06-18 07:09:34 +0200
commit46c23871813618e7a16050068041b3d33551cd0d (patch)
treec26f000d0857387806330031de7d9e91fe1d4aee /cpukit/rtems/src/taskcreate.c
parenti386/pc: Initialise the printk serial port on first use (diff)
downloadrtems-46c23871813618e7a16050068041b3d33551cd0d.tar.bz2
rtems: Remove RTEMS_MP_NOT_CONFIGURED error
Some objects can be created with a local or global scope in a multiprocessing network. In non-multiprocessing configurations setting the scope to local or global had no effect since such a system can be viewed as a multiprocessing network with just one node. One and all nodes is the same in such a network. However, if multiprocessing was configured, creation of a global object in a single node network resulted in an RTEMS_MP_NOT_CONFIGURED error. Remove this error condition for symmetry to the non-multiprocessing setup. This is in line with the task affinity behaviour in SMP systems. Update #4005.
Diffstat (limited to 'cpukit/rtems/src/taskcreate.c')
-rw-r--r--cpukit/rtems/src/taskcreate.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/cpukit/rtems/src/taskcreate.c b/cpukit/rtems/src/taskcreate.c
index 288eafa5c7..b430d3c705 100644
--- a/cpukit/rtems/src/taskcreate.c
+++ b/cpukit/rtems/src/taskcreate.c
@@ -111,15 +111,11 @@ rtems_status_code rtems_task_create(
}
#if defined(RTEMS_MULTIPROCESSING)
- if ( _Attributes_Is_global( the_attribute_set ) ) {
-
- is_global = true;
-
- if ( !_System_state_Is_multiprocessing )
- return RTEMS_MP_NOT_CONFIGURED;
+ if ( !_System_state_Is_multiprocessing ) {
+ the_attribute_set = _Attributes_Clear( the_attribute_set, RTEMS_GLOBAL );
+ }
- } else
- is_global = false;
+ is_global = _Attributes_Is_global( the_attribute_set );
#endif
/*