[PATCH 05/11] score: Simplify _MRSP_Wait_for_ownership()

Sebastian Huber sebastian.huber at embedded-brains.de
Thu Jan 28 15:28:01 UTC 2021


Do not shadow the queue_context parameter with a local variable.  Reuse
the queue context to reduce the required stack space.

This fix relates to a Coverity issue (PW.PARAMETER_HIDDEN).
---
 cpukit/include/rtems/score/mrspimpl.h | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/cpukit/include/rtems/score/mrspimpl.h b/cpukit/include/rtems/score/mrspimpl.h
index 4af7d0311d..3cd5bcf33c 100644
--- a/cpukit/include/rtems/score/mrspimpl.h
+++ b/cpukit/include/rtems/score/mrspimpl.h
@@ -367,9 +367,8 @@ RTEMS_INLINE_ROUTINE Status_Control _MRSP_Wait_for_ownership(
   if ( status == STATUS_SUCCESSFUL ) {
     _MRSP_Replace_priority( mrsp, executing, &ceiling_priority );
   } else {
-    Thread_queue_Context  queue_context;
-    Per_CPU_Control      *cpu_self;
-    int                   sticky_level_change;
+    Per_CPU_Control *cpu_self;
+    int              sticky_level_change;
 
     if ( status != STATUS_DEADLOCK ) {
       sticky_level_change = -1;
@@ -377,12 +376,12 @@ RTEMS_INLINE_ROUTINE Status_Control _MRSP_Wait_for_ownership(
       sticky_level_change = 0;
     }
 
-    _ISR_lock_ISR_disable( &queue_context.Lock_context.Lock_context );
-    _MRSP_Remove_priority( executing, &ceiling_priority, &queue_context );
+    _ISR_lock_ISR_disable( &queue_context->Lock_context.Lock_context );
+    _MRSP_Remove_priority( executing, &ceiling_priority, queue_context );
     cpu_self = _Thread_Dispatch_disable_critical(
-      &queue_context.Lock_context.Lock_context
+      &queue_context->Lock_context.Lock_context
     );
-    _ISR_lock_ISR_enable( &queue_context.Lock_context.Lock_context );
+    _ISR_lock_ISR_enable( &queue_context->Lock_context.Lock_context );
     _Thread_Priority_and_sticky_update( executing, sticky_level_change );
     _Thread_Dispatch_enable( cpu_self );
   }
-- 
2.26.2



More information about the devel mailing list