smp: Protect decrement operation

This commit is contained in:
Sebastian Huber
2013-06-12 09:16:30 +02:00
parent a8ef3bf053
commit df244cfc30

View File

@@ -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;