[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