summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/src/semobtain.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2015-05-07 14:02:46 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2015-05-19 12:00:48 +0200
commita816f08478e2fe395062a8114c0654d0624906ae (patch)
tree081603c63ed5648cef1fc5b12b7404fdd7bedb09 /cpukit/rtems/src/semobtain.c
parentscore: Remove Giant lock in rtems_clock_tick() (diff)
downloadrtems-a816f08478e2fe395062a8114c0654d0624906ae.tar.bz2
score: Fine grained locking for MrsP
Update #2273.
Diffstat (limited to 'cpukit/rtems/src/semobtain.c')
-rw-r--r--cpukit/rtems/src/semobtain.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/cpukit/rtems/src/semobtain.c b/cpukit/rtems/src/semobtain.c
index 1ebc98bdb7..bda39fa80e 100644
--- a/cpukit/rtems/src/semobtain.c
+++ b/cpukit/rtems/src/semobtain.c
@@ -59,16 +59,13 @@ rtems_status_code rtems_semaphore_obtain(
if ( _Attributes_Is_multiprocessor_resource_sharing( attribute_set ) ) {
MRSP_Status mrsp_status;
- _Thread_Disable_dispatch();
- _ISR_lock_ISR_enable( &lock_context );
mrsp_status = _MRSP_Obtain(
&the_semaphore->Core_control.mrsp,
executing,
wait,
- timeout
+ timeout,
+ &lock_context
);
- _Thread_Enable_dispatch();
- _Objects_Put_for_get_isr_disable( &the_semaphore->Object );
return _Semaphore_Translate_MRSP_status_code( mrsp_status );
} else
#endif