From 4142f73762a3ced0128dca6766b4c0e094bb39e4 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 1 Jul 2016 11:50:41 +0200 Subject: score: Fix priority affinity SMP scheduler Bug introduced by 9bfad8cd519f17cbb26a672868169fcd304d5bd5. --- cpukit/score/src/schedulerpriorityaffinitysmp.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/cpukit/score/src/schedulerpriorityaffinitysmp.c b/cpukit/score/src/schedulerpriorityaffinitysmp.c index 76b46010cb..cec09729fb 100644 --- a/cpukit/score/src/schedulerpriorityaffinitysmp.c +++ b/cpukit/score/src/schedulerpriorityaffinitysmp.c @@ -306,10 +306,18 @@ static void _Scheduler_priority_affinity_SMP_Check_for_migrations( Scheduler_Context *context ) { - Scheduler_Node *lowest_scheduled; - Scheduler_Node *highest_ready; + Scheduler_priority_SMP_Context *self; + Scheduler_Node *lowest_scheduled; + Scheduler_Node *highest_ready; + + self = _Scheduler_priority_SMP_Get_self( context ); while (1) { + if ( _Priority_bit_map_Is_empty( &self->Bit_map ) ) { + /* Nothing to do */ + break; + } + highest_ready = _Scheduler_priority_affinity_SMP_Get_highest_ready( context, NULL ); -- cgit v1.2.3