[rtems commit] score: Use RTEMS_SMP in _Thread_Create_idle()

Sebastian Huber sebh at rtems.org
Thu Jul 7 06:54:06 UTC 2022


Module:    rtems
Branch:    master
Commit:    80090639a62b50d7d66614ca789e4592924a06e5
Changeset: http://git.rtems.org/rtems/commit/?id=80090639a62b50d7d66614ca789e4592924a06e5

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Tue Jul  5 09:04:26 2022 +0200

score: Use RTEMS_SMP in _Thread_Create_idle()

Conditional expressions with inline functions are not optimized away if
optimization is disabled.  Avoid such expressions to prevent dead
branches.

---

 cpukit/score/src/threadcreateidle.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/cpukit/score/src/threadcreateidle.c b/cpukit/score/src/threadcreateidle.c
index be3cbca842..b5e0cfdc9b 100644
--- a/cpukit/score/src/threadcreateidle.c
+++ b/cpukit/score/src/threadcreateidle.c
@@ -112,10 +112,10 @@ static void _Thread_Create_idle_for_CPU( Per_CPU_Control *cpu )
 
 void _Thread_Create_idle( void )
 {
+#if defined(RTEMS_SMP)
   uint32_t cpu_max;
   uint32_t cpu_index;
 
-  _System_state_Set( SYSTEM_STATE_BEFORE_MULTITASKING );
   cpu_max = _SMP_Get_processor_maximum();
 
   for ( cpu_index = 0 ; cpu_index < cpu_max ; ++cpu_index ) {
@@ -125,8 +125,12 @@ void _Thread_Create_idle( void )
       _Thread_Create_idle_for_CPU( cpu );
     }
   }
+#else
+  _Thread_Create_idle_for_CPU( _Per_CPU_Get() );
+#endif
 
   _CPU_Use_thread_local_storage(
     &_Per_CPU_Get_executing( _Per_CPU_Get() )->Registers
   );
+  _System_state_Set( SYSTEM_STATE_BEFORE_MULTITASKING );
 }



More information about the vc mailing list