diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-06-30 06:27:51 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-06-30 09:51:19 +0200 |
commit | 729cf694e863c88fe0f27ed135c1721fff4c266f (patch) | |
tree | 97db9e4f24a79e93ca328b488b59c8948cf2c69b /c | |
parent | score: Strong APA scheduler processor allocation (diff) | |
download | rtems-729cf694e863c88fe0f27ed135c1721fff4c266f.tar.bz2 |
bsps: Do not use fast idle clock for SMP
We may have more than one idle thread. Thus, the clock driver fast idle
logic would be a bit more complicated.
Diffstat (limited to 'c')
-rw-r--r-- | c/src/lib/libbsp/shared/clockdrv_shell.h | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/c/src/lib/libbsp/shared/clockdrv_shell.h b/c/src/lib/libbsp/shared/clockdrv_shell.h index 6609f5ea9b..47658732b4 100644 --- a/c/src/lib/libbsp/shared/clockdrv_shell.h +++ b/c/src/lib/libbsp/shared/clockdrv_shell.h @@ -137,19 +137,21 @@ rtems_isr Clock_isr( Clock_driver_timecounter_tick(); - while ( - _Thread_Heir == _Thread_Executing - && _Thread_Executing->Start.Entry.Kinds.Idle.entry - == rtems_configuration_get_idle_task() - ) { - ISR_lock_Context lock_context; - - _Timecounter_Acquire(&lock_context); - _Timecounter_Tick_simple( - interval, - (*tc->tc_get_timecount)(tc), - &lock_context - ); + if (!rtems_configuration_is_smp_enabled()) { + while ( + _Thread_Heir == _Thread_Executing + && _Thread_Executing->Start.Entry.Kinds.Idle.entry + == rtems_configuration_get_idle_task() + ) { + ISR_lock_Context lock_context; + + _Timecounter_Acquire(&lock_context); + _Timecounter_Tick_simple( + interval, + (*tc->tc_get_timecount)(tc), + &lock_context + ); + } } Clock_driver_support_at_tick(); |