From df244cfc300029d943a5c54b22d28b85c38d2ae0 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 12 Jun 2013 09:16:30 +0200 Subject: smp: Protect decrement operation --- cpukit/score/src/threaddispatchdisablelevel.c | 8 ++++---- 1 file 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; -- cgit v1.2.3