diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-01-28 12:55:52 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-02-01 06:22:20 +0100 |
commit | 3dcdb9c9e3c3328112ba17e717f812bffc7870f2 (patch) | |
tree | 798f67d21dabe67a325d0025e8986aa9e49e8784 /cpukit | |
parent | score: Fix implicit type conversion (diff) | |
download | rtems-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).
Diffstat (limited to 'cpukit')
-rw-r--r-- | cpukit/include/rtems/score/mrspimpl.h | 13 |
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 ); } |