Index: cpukit/libmisc/capture/capture.h
===================================================================
--- cpukit/libmisc/capture/capture.h	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/libmisc/capture/capture.h	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -873,5 +873,5 @@
 rtems_capture_task_start_priority (rtems_tcb* tcb)
 {
-  return _RTEMS_Priority_From_core (_Scheduler_Get_own( tcb ),
+  return _RTEMS_Priority_From_core (_Thread_Scheduler_get_home( tcb ),
                                     tcb->Start.initial_priority);
 }
Index: cpukit/libmisc/cpuuse/cpuusagereset.c
===================================================================
--- cpukit/libmisc/cpuuse/cpuusagereset.c	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/libmisc/cpuuse/cpuusagereset.c	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -37,5 +37,5 @@
 
   _Thread_State_acquire( the_thread, &state_lock_context );
-  scheduler = _Scheduler_Get( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   _Scheduler_Acquire_critical( scheduler, &scheduler_lock_context );
 
Index: cpukit/posix/src/mutexinit.c
===================================================================
--- cpukit/posix/src/mutexinit.c	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/posix/src/mutexinit.c	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -111,5 +111,5 @@
     bool valid;
 
-    scheduler = _Scheduler_Get_own( _Thread_Get_executing() );
+    scheduler = _Thread_Scheduler_get_home( _Thread_Get_executing() );
     prio_ceiling = the_attr->prio_ceiling;
 
Index: cpukit/posix/src/pthread.c
===================================================================
--- cpukit/posix/src/pthread.c	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/posix/src/pthread.c	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -169,5 +169,5 @@
   _POSIX_Threads_Initialize_attributes( &api->Attributes );
   api->Attributes.schedparam.sched_priority = _POSIX_Priority_From_core(
-    _Scheduler_Get_own( created ),
+    _Thread_Scheduler_get_home( created ),
     _Thread_Get_priority( created )
   );
Index: cpukit/posix/src/pthreadcreate.c
===================================================================
--- cpukit/posix/src/pthreadcreate.c	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/posix/src/pthreadcreate.c	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -152,5 +152,5 @@
   normal_prio = schedparam.sched_priority;
 
-  scheduler = _Scheduler_Get_own( executing );
+  scheduler = _Thread_Scheduler_get_home( executing );
 
   core_normal_prio = _POSIX_Priority_To_core( scheduler, normal_prio, &valid );
Index: cpukit/posix/src/pthreadgetschedparam.c
===================================================================
--- cpukit/posix/src/pthreadgetschedparam.c	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/posix/src/pthreadgetschedparam.c	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -59,5 +59,5 @@
   *param  = api->Attributes.schedparam;
 
-  scheduler = _Scheduler_Get_own( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   priority = the_thread->Real_priority.priority;
 
Index: cpukit/posix/src/pthreadsetschedparam.c
===================================================================
--- cpukit/posix/src/pthreadsetschedparam.c	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/posix/src/pthreadsetschedparam.c	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -56,5 +56,5 @@
   }
 
-  scheduler = _Scheduler_Get_own( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
 
   core_normal_prio = _POSIX_Priority_To_core( scheduler, low_prio, &valid );
Index: cpukit/posix/src/pthreadsetschedprio.c
===================================================================
--- cpukit/posix/src/pthreadsetschedprio.c	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/posix/src/pthreadsetschedprio.c	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -37,5 +37,5 @@
   _Thread_Wait_acquire_critical( the_thread, &queue_context );
 
-  scheduler = _Scheduler_Get_own( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
 
   new_priority = _POSIX_Priority_To_core( scheduler, prio, &valid );
Index: cpukit/posix/src/sched_getprioritymax.c
===================================================================
--- cpukit/posix/src/sched_getprioritymax.c	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/posix/src/sched_getprioritymax.c	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -44,5 +44,5 @@
   }
 
-  scheduler = _Scheduler_Get_own( _Thread_Get_executing() );
+  scheduler = _Thread_Scheduler_get_home( _Thread_Get_executing() );
   return _POSIX_Priority_Get_maximum( scheduler );
 }
Index: cpukit/rtems/src/semcreate.c
===================================================================
--- cpukit/rtems/src/semcreate.c	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/rtems/src/semcreate.c	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -158,5 +158,5 @@
       break;
     case SEMAPHORE_VARIANT_MUTEX_PRIORITY_CEILING:
-      scheduler = _Scheduler_Get_own( executing );
+      scheduler = _Thread_Scheduler_get_home( executing );
       priority = _RTEMS_Priority_To_core( scheduler, priority_ceiling, &valid );
 
@@ -196,5 +196,5 @@
 #if defined(RTEMS_SMP)
     case SEMAPHORE_VARIANT_MRSP:
-      scheduler = _Scheduler_Get_own( executing );
+      scheduler = _Thread_Scheduler_get_home( executing );
       priority = _RTEMS_Priority_To_core( scheduler, priority_ceiling, &valid );
 
Index: cpukit/rtems/src/taskgetscheduler.c
===================================================================
--- cpukit/rtems/src/taskgetscheduler.c	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/rtems/src/taskgetscheduler.c	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -47,5 +47,5 @@
   _Thread_State_acquire_critical( the_thread, &lock_context );
 
-  scheduler = _Scheduler_Get( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   *scheduler_id = _Scheduler_Build_id( _Scheduler_Get_index( scheduler ) );
 
Index: cpukit/rtems/src/tasksetpriority.c
===================================================================
--- cpukit/rtems/src/tasksetpriority.c	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/rtems/src/tasksetpriority.c	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -91,5 +91,5 @@
   _Thread_Wait_acquire_critical( the_thread, &queue_context );
 
-  scheduler = _Scheduler_Get_own( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   old_priority = _Thread_Get_priority( the_thread );
 
Index: cpukit/score/include/rtems/score/coremuteximpl.h
===================================================================
--- cpukit/score/include/rtems/score/coremuteximpl.h	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/score/include/rtems/score/coremuteximpl.h	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -333,5 +333,5 @@
 #if defined(RTEMS_SMP)
     if (
-      _Scheduler_Get_own( executing )
+      _Thread_Scheduler_get_home( executing )
         != _CORE_ceiling_mutex_Get_scheduler( the_mutex )
     ) {
Index: cpukit/score/include/rtems/score/mrspimpl.h
===================================================================
--- cpukit/score/include/rtems/score/mrspimpl.h	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/score/include/rtems/score/mrspimpl.h	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -106,5 +106,5 @@
   _Thread_Wait_acquire_default_critical( thread, &lock_context );
 
-  scheduler = _Scheduler_Get_own( thread );
+  scheduler = _Thread_Scheduler_get_home( thread );
   scheduler_node = _Thread_Scheduler_get_home_node( thread );
   ceiling_priority = _MRSP_Get_priority( mrsp, scheduler );
Index: cpukit/score/include/rtems/score/schedulerimpl.h
===================================================================
--- cpukit/score/include/rtems/score/schedulerimpl.h	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/score/include/rtems/score/schedulerimpl.h	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -54,30 +54,4 @@
 }
 
-RTEMS_INLINE_ROUTINE const Scheduler_Control *_Scheduler_Get(
-  const Thread_Control *the_thread
-)
-{
-#if defined(RTEMS_SMP)
-  return the_thread->Scheduler.control;
-#else
-  (void) the_thread;
-
-  return &_Scheduler_Table[ 0 ];
-#endif
-}
-
-RTEMS_INLINE_ROUTINE const Scheduler_Control *_Scheduler_Get_own(
-  const Thread_Control *the_thread
-)
-{
-#if defined(RTEMS_SMP)
-  return the_thread->Scheduler.own_control;
-#else
-  (void) the_thread;
-
-  return &_Scheduler_Table[ 0 ];
-#endif
-}
-
 RTEMS_INLINE_ROUTINE const Scheduler_Control *_Scheduler_Get_by_CPU_index(
   uint32_t cpu_index
@@ -178,5 +152,5 @@
   ISR_lock_Context         lock_context;
 
-  scheduler = _Scheduler_Get( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   _Scheduler_Acquire_critical( scheduler, &lock_context );
 
@@ -247,5 +221,5 @@
   const Scheduler_Control *scheduler;
 
-  scheduler = _Scheduler_Get( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   ( *scheduler->Operations.yield )(
     scheduler,
@@ -309,5 +283,5 @@
   const Scheduler_Control *scheduler;
 
-  scheduler = _Scheduler_Get( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   ( *scheduler->Operations.block )(
     scheduler,
@@ -381,5 +355,5 @@
   const Scheduler_Control *scheduler;
 
-  scheduler = _Scheduler_Get( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   ( *scheduler->Operations.unblock )(
     scheduler,
@@ -436,5 +410,5 @@
   const Scheduler_Control *scheduler;
 
-  scheduler = _Scheduler_Get( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   ( *scheduler->Operations.update_priority )(
     scheduler,
@@ -602,5 +576,5 @@
 )
 {
-  const Scheduler_Control *scheduler = _Scheduler_Get( the_thread );
+  const Scheduler_Control *scheduler = _Thread_Scheduler_get_home( the_thread );
 
   _Thread_queue_Context_clear_priority_updates( queue_context );
@@ -628,5 +602,5 @@
 )
 {
-  const Scheduler_Control *scheduler = _Scheduler_Get( the_thread );
+  const Scheduler_Control *scheduler = _Thread_Scheduler_get_home( the_thread );
 
   _Thread_queue_Context_clear_priority_updates( queue_context );
@@ -1284,5 +1258,5 @@
     const Scheduler_Control *old_scheduler;
 
-    old_scheduler = _Scheduler_Get( the_thread );
+    old_scheduler = _Thread_Scheduler_get_home( the_thread );
 
     if ( old_scheduler != new_scheduler ) {
@@ -1313,6 +1287,5 @@
       );
 
-      the_thread->Scheduler.own_control = new_scheduler;
-      the_thread->Scheduler.control = new_scheduler;
+      the_thread->Scheduler.home = new_scheduler;
       _Scheduler_Node_set_priority( new_scheduler_node, priority, false );
 
Index: cpukit/score/include/rtems/score/thread.h
===================================================================
--- cpukit/score/include/rtems/score/thread.h	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/score/include/rtems/score/thread.h	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -256,16 +256,7 @@
 
   /**
-   * @brief The own scheduler control of this thread.
-   *
-   * This field is constant after initialization.
-   */
-  const struct Scheduler_Control *own_control;
-
-  /**
-   * @brief The scheduler control of this thread.
-   *
-   * The scheduler helping protocol may change this field.
-   */
-  const struct Scheduler_Control *control;
+   * @brief The home scheduler control of this thread.
+   */
+  const struct Scheduler_Control *home;
 
   /**
Index: cpukit/score/include/rtems/score/threadimpl.h
===================================================================
--- cpukit/score/include/rtems/score/threadimpl.h	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/score/include/rtems/score/threadimpl.h	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -1005,4 +1005,16 @@
 }
 #endif
+
+RTEMS_INLINE_ROUTINE const Scheduler_Control *_Thread_Scheduler_get_home(
+  const Thread_Control *the_thread
+)
+{
+#if defined(RTEMS_SMP)
+  return the_thread->Scheduler.home;
+#else
+  (void) the_thread;
+  return &_Scheduler_Table[ 0 ];
+#endif
+}
 
 RTEMS_INLINE_ROUTINE Scheduler_Node *_Thread_Scheduler_get_home_node(
Index: cpukit/score/src/sched.c
===================================================================
--- cpukit/score/src/sched.c	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/score/src/sched.c	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -32,5 +32,5 @@
   Thread_Control *executing = _Thread_Get_executing();
 
-  return (int) _Scheduler_Get_index( _Scheduler_Get( executing ) );
+  return (int) _Scheduler_Get_index( _Thread_Scheduler_get_home( executing ) );
 }
 
Index: cpukit/score/src/schedulergetaffinity.c
===================================================================
--- cpukit/score/src/schedulergetaffinity.c	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/score/src/schedulergetaffinity.c	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -35,5 +35,5 @@
   }
 
-  scheduler = _Scheduler_Get( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   _Scheduler_Acquire_critical( scheduler, &lock_context );
 
Index: cpukit/score/src/schedulersetaffinity.c
===================================================================
--- cpukit/score/src/schedulersetaffinity.c	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/score/src/schedulersetaffinity.c	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -35,5 +35,5 @@
   }
 
-  scheduler = _Scheduler_Get( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   _Scheduler_Acquire_critical( scheduler, &lock_context );
 
Index: cpukit/score/src/threadgetcputimeused.c
===================================================================
--- cpukit/score/src/threadgetcputimeused.c	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/score/src/threadgetcputimeused.c	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -39,5 +39,5 @@
 
   _Thread_State_acquire( the_thread, &state_lock_context );
-  scheduler = _Scheduler_Get( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   _Scheduler_Acquire_critical( scheduler, &scheduler_lock_context );
 
Index: cpukit/score/src/threadinitialize.c
===================================================================
--- cpukit/score/src/threadinitialize.c	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/score/src/threadinitialize.c	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -233,6 +233,5 @@
 #if defined(RTEMS_SMP)
   RTEMS_STATIC_ASSERT( THREAD_SCHEDULER_BLOCKED == 0, Scheduler_state );
-  the_thread->Scheduler.own_control = scheduler;
-  the_thread->Scheduler.control = scheduler;
+  the_thread->Scheduler.home = scheduler;
   _ISR_lock_Initialize( &the_thread->Scheduler.Lock, "Thread Scheduler" );
   _ISR_lock_Initialize( &the_thread->Wait.Lock.Default, "Thread Wait Default" );
Index: cpukit/score/src/threadrestart.c
===================================================================
--- cpukit/score/src/threadrestart.c	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ cpukit/score/src/threadrestart.c	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -170,5 +170,5 @@
   _ISR_lock_Destroy( &the_thread->Keys.Lock );
   _Scheduler_Node_destroy(
-    _Scheduler_Get( the_thread ),
+    _Thread_Scheduler_get_home( the_thread ),
     _Thread_Scheduler_get_home_node( the_thread )
   );
Index: testsuites/smptests/smpscheduler03/init.c
===================================================================
--- testsuites/smptests/smpscheduler03/init.c	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ testsuites/smptests/smpscheduler03/init.c	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -215,5 +215,5 @@
 
   _Thread_State_acquire( thread, &state_lock_context );
-  scheduler = _Scheduler_Get( thread );
+  scheduler = _Thread_Scheduler_get_home( thread );
   _Scheduler_Acquire_critical( scheduler, &scheduler_lock_context );
 
@@ -326,5 +326,5 @@
 
   _Thread_State_acquire( thread, &state_lock_context );
-  scheduler = _Scheduler_Get( thread );
+  scheduler = _Thread_Scheduler_get_home( thread );
   _Scheduler_Acquire_critical( scheduler, &scheduler_lock_context );
 
@@ -465,5 +465,5 @@
 
   _Thread_State_acquire( thread, &state_lock_context );
-  scheduler = _Scheduler_Get( thread );
+  scheduler = _Thread_Scheduler_get_home( thread );
   _Scheduler_Acquire_critical( scheduler, &scheduler_lock_context );
 
@@ -485,5 +485,5 @@
 
   _Thread_State_acquire( thread, &state_lock_context );
-  scheduler = _Scheduler_Get( thread );
+  scheduler = _Thread_Scheduler_get_home( thread );
   _Scheduler_Acquire_critical( scheduler, &scheduler_lock_context );
 
Index: testsuites/tmtests/tm26/task1.c
===================================================================
--- testsuites/tmtests/tm26/task1.c	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ testsuites/tmtests/tm26/task1.c	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -317,5 +317,5 @@
 {
   Scheduler_priority_Context *scheduler_context =
-    _Scheduler_priority_Get_context( _Scheduler_Get( _Thread_Get_executing() ) );
+    _Scheduler_priority_Get_context( _Thread_Scheduler_get_home( _Thread_Get_executing() ) );
 
   thread_dispatch_no_fp_time = benchmark_timer_read();
@@ -350,5 +350,5 @@
 {
   Scheduler_priority_Context *scheduler_context =
-    _Scheduler_priority_Get_context( _Scheduler_Get( _Thread_Get_executing() ) );
+    _Scheduler_priority_Get_context( _Thread_Scheduler_get_home( _Thread_Get_executing() ) );
   Thread_Control             *executing;
 
@@ -390,5 +390,5 @@
 {
   Scheduler_priority_Context *scheduler_context =
-    _Scheduler_priority_Get_context( _Scheduler_Get( _Thread_Get_executing() ) );
+    _Scheduler_priority_Get_context( _Thread_Scheduler_get_home( _Thread_Get_executing() ) );
   Thread_Control             *executing;
   FP_DECLARE;
@@ -446,5 +446,5 @@
 {
   Scheduler_priority_Context *scheduler_context =
-    _Scheduler_priority_Get_context( _Scheduler_Get( _Thread_Get_executing() ) );
+    _Scheduler_priority_Get_context( _Thread_Scheduler_get_home( _Thread_Get_executing() ) );
   Thread_Control             *executing;
   FP_DECLARE;
Index: testsuites/tmtests/tm27/task1.c
===================================================================
--- testsuites/tmtests/tm27/task1.c	(revision 7f7424329eafab755381bc638c2cdddc152a909b)
+++ testsuites/tmtests/tm27/task1.c	(revision 2dd098a6359d9df132da09201ea0506c5389dc80)
@@ -108,5 +108,5 @@
 {
   Scheduler_priority_Context *scheduler_context =
-    _Scheduler_priority_Get_context( _Scheduler_Get( _Thread_Get_executing() ) );
+    _Scheduler_priority_Get_context( _Thread_Scheduler_get_home( _Thread_Get_executing() ) );
 #if defined(RTEMS_SMP)
   rtems_interrupt_level level;
@@ -232,5 +232,5 @@
 
   _Thread_State_acquire( executing, &state_lock_context );
-  scheduler = _Scheduler_Get( executing );
+  scheduler = _Thread_Scheduler_get_home( executing );
   scheduler_context = _Scheduler_priority_Get_context( scheduler );
   _Thread_State_release( executing, &state_lock_context );
