summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-01-28 12:55:52 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-02-01 06:22:20 +0100
commit3dcdb9c9e3c3328112ba17e717f812bffc7870f2 (patch)
tree798f67d21dabe67a325d0025e8986aa9e49e8784
parentscore: Fix implicit type conversion (diff)
downloadrtems-3dcdb9c9e3c3328112ba17e717f812bffc7870f2.tar.bz2
score: Simplify _MRSP_Wait_for_ownership()
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).
-rw-r--r--cpukit/include/rtems/score/mrspimpl.h13
1 files 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 );
}