diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-06-12 09:16:30 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-06-12 16:12:53 +0200 |
commit | df244cfc300029d943a5c54b22d28b85c38d2ae0 (patch) | |
tree | 6084cb7604302c9aa23b0d0136d472b667dfc426 /cpukit/score/src/threaddispatchdisablelevel.c | |
parent | smp: Add and use _Per_CPU_Lock_acquire() (diff) | |
download | rtems-df244cfc300029d943a5c54b22d28b85c38d2ae0.tar.bz2 |
smp: Protect decrement operation
Diffstat (limited to '')
-rw-r--r-- | cpukit/score/src/threaddispatchdisablelevel.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/cpukit/score/src/threaddispatchdisablelevel.c b/cpukit/score/src/threaddispatchdisablelevel.c index ee1bfebe67..4686795bbb 100644 --- a/cpukit/score/src/threaddispatchdisablelevel.c +++ b/cpukit/score/src/threaddispatchdisablelevel.c @@ -88,16 +88,16 @@ uint32_t _Thread_Dispatch_decrement_disable_level( void ) _ISR_Disable_on_this_core( isr_level ); + disable_level = _Thread_Dispatch_disable_level; + --disable_level; + _Thread_Dispatch_disable_level = disable_level; + --level_lock->nest_level; if ( level_lock->nest_level == 0 ) { level_lock->owner_cpu = NO_OWNER_CPU; _SMP_lock_Release( &level_lock->lock ); } - disable_level = _Thread_Dispatch_disable_level; - --disable_level; - _Thread_Dispatch_disable_level = disable_level; - _ISR_Enable_on_this_core( isr_level ); return disable_level; |