Index: cpukit/score/include/rtems/score/schedulersmpimpl.h
===================================================================
--- cpukit/score/include/rtems/score/schedulersmpimpl.h	(revision 333f9426f6d4239e33f39da0b2217c58f6fa9046)
+++ cpukit/score/include/rtems/score/schedulersmpimpl.h	(revision 27783f6ca8683eaf4826e777963c32a63f55da31)
@@ -426,6 +426,5 @@
 
 static inline Thread_Control *_Scheduler_SMP_Get_idle_thread(
-  Scheduler_Context     *context,
-  Scheduler_SMP_Extract  extract_from_ready
+  Scheduler_Context *context
 )
 {
@@ -433,7 +432,4 @@
   Thread_Control *idle = (Thread_Control *)
     _Chain_Get_first_unprotected( &self->Idle_threads );
-  Scheduler_Node *own_node = _Scheduler_Thread_get_own_node( idle );
-
-  ( *extract_from_ready )( &self->Base, own_node );
 
   _Assert( &idle->Object.Node != _Chain_Tail( &self->Idle_threads ) );
@@ -443,14 +439,11 @@
 
 static inline void _Scheduler_SMP_Release_idle_thread(
-  Scheduler_Context    *context,
-  Thread_Control       *idle,
-  Scheduler_SMP_Insert  insert_ready
+  Scheduler_Context *context,
+  Thread_Control    *idle
 )
 {
   Scheduler_SMP_Context *self = _Scheduler_SMP_Get_self( context );
-  Scheduler_Node *own_node = _Scheduler_Thread_get_own_node( idle );
 
   _Chain_Prepend_unprotected( &self->Idle_threads, &idle->Object.Node );
-  ( *insert_ready )( context, own_node );
 }
 
@@ -537,6 +530,5 @@
   Scheduler_SMP_Insert              insert_scheduled,
   Scheduler_SMP_Move                move_from_scheduled_to_ready,
-  Scheduler_SMP_Allocate_processor  allocate_processor,
-  Scheduler_Release_idle_thread     release_idle_thread
+  Scheduler_SMP_Allocate_processor  allocate_processor
 )
 {
@@ -571,5 +563,5 @@
     context,
     lowest_scheduled,
-    release_idle_thread
+    _Scheduler_SMP_Release_idle_thread
   );
   if ( idle == NULL ) {
@@ -604,5 +596,4 @@
  * @param[in] allocate_processor Function to allocate a processor to a node
  *   based on the rules of the scheduler.
- * @param[in] release_idle_thread Function to release an idle thread.
  */
 static inline Thread_Control *_Scheduler_SMP_Enqueue_ordered(
@@ -615,6 +606,5 @@
   Scheduler_SMP_Move                  move_from_scheduled_to_ready,
   Scheduler_SMP_Get_lowest_scheduled  get_lowest_scheduled,
-  Scheduler_SMP_Allocate_processor    allocate_processor,
-  Scheduler_Release_idle_thread       release_idle_thread
+  Scheduler_SMP_Allocate_processor    allocate_processor
 )
 {
@@ -629,6 +619,5 @@
       insert_scheduled,
       move_from_scheduled_to_ready,
-      allocate_processor,
-      release_idle_thread
+      allocate_processor
     );
   } else {
@@ -657,6 +646,4 @@
  * @param[in] allocate_processor Function to allocate a processor to a node
  *   based on the rules of the scheduler.
- * @param[in] get_idle_thread Function to get an idle thread.
- * @param[in] release_idle_thread Function to release an idle thread.
  */
 static inline Thread_Control *_Scheduler_SMP_Enqueue_scheduled_ordered(
@@ -669,7 +656,5 @@
   Scheduler_SMP_Insert              insert_scheduled,
   Scheduler_SMP_Move                move_from_ready_to_scheduled,
-  Scheduler_SMP_Allocate_processor  allocate_processor,
-  Scheduler_Get_idle_thread         get_idle_thread,
-  Scheduler_Release_idle_thread     release_idle_thread
+  Scheduler_SMP_Allocate_processor  allocate_processor
 )
 {
@@ -693,5 +678,5 @@
         context,
         highest_ready,
-        get_idle_thread
+        _Scheduler_SMP_Get_idle_thread
       )
     ) {
@@ -718,5 +703,5 @@
         context,
         node,
-        release_idle_thread
+        _Scheduler_SMP_Release_idle_thread
       );
       if ( idle == NULL ) {
@@ -753,6 +738,5 @@
   Scheduler_SMP_Get_highest_ready   get_highest_ready,
   Scheduler_SMP_Move                move_from_ready_to_scheduled,
-  Scheduler_SMP_Allocate_processor  allocate_processor,
-  Scheduler_Get_idle_thread         get_idle_thread
+  Scheduler_SMP_Allocate_processor  allocate_processor
 )
 {
@@ -764,5 +748,5 @@
         context,
         highest_ready,
-        get_idle_thread
+        _Scheduler_SMP_Get_idle_thread
       )
     ) {
@@ -798,5 +782,4 @@
  * @param[in] move_from_ready_to_scheduled Function to move a node from the set
  *   of ready nodes to the set of scheduled nodes.
- * @param[in] get_idle_thread Function to get an idle thread.
  */
 static inline void _Scheduler_SMP_Block(
@@ -806,6 +789,5 @@
   Scheduler_SMP_Get_highest_ready   get_highest_ready,
   Scheduler_SMP_Move                move_from_ready_to_scheduled,
-  Scheduler_SMP_Allocate_processor  allocate_processor,
-  Scheduler_Get_idle_thread         get_idle_thread
+  Scheduler_SMP_Allocate_processor  allocate_processor
 )
 {
@@ -816,5 +798,5 @@
     &node->Base,
     is_scheduled,
-    get_idle_thread
+    _Scheduler_SMP_Get_idle_thread
   );
 
@@ -831,6 +813,5 @@
         get_highest_ready,
         move_from_ready_to_scheduled,
-        allocate_processor,
-        get_idle_thread
+        allocate_processor
       );
     } else {
@@ -843,6 +824,5 @@
   Scheduler_Context             *context,
   Thread_Control                *thread,
-  Scheduler_SMP_Enqueue          enqueue_fifo,
-  Scheduler_Release_idle_thread  release_idle_thread
+  Scheduler_SMP_Enqueue          enqueue_fifo
 )
 {
@@ -854,5 +834,5 @@
     &node->Base,
     is_scheduled,
-    release_idle_thread
+    _Scheduler_SMP_Release_idle_thread
   );
   Thread_Control *needs_help;
@@ -918,6 +898,5 @@
   Thread_Control                     *offers_help,
   Thread_Control                     *needs_help,
-  Scheduler_SMP_Enqueue               enqueue_fifo,
-  Scheduler_Release_idle_thread       release_idle_thread
+  Scheduler_SMP_Enqueue               enqueue_fifo
 )
 {
@@ -941,5 +920,5 @@
         needs_help,
         previous_accepts_help,
-        release_idle_thread
+        _Scheduler_SMP_Release_idle_thread
       );
       break;
