diff options
Diffstat (limited to 'cpukit/score/src/threaddispatchdisablelevel.c')
-rw-r--r-- | cpukit/score/src/threaddispatchdisablelevel.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/cpukit/score/src/threaddispatchdisablelevel.c b/cpukit/score/src/threaddispatchdisablelevel.c index f78eb52016..9170f2eb09 100644 --- a/cpukit/score/src/threaddispatchdisablelevel.c +++ b/cpukit/score/src/threaddispatchdisablelevel.c @@ -113,8 +113,10 @@ uint32_t _Thread_Dispatch_decrement_disable_level( void ) _Giant_Do_release( cpu_self ); _Assert( - ( disable_level == 0 && _Giant.owner_cpu != cpu_self ) - || ( disable_level != 0 && _Giant.owner_cpu == cpu_self ) + ( disable_level == cpu_self->isr_nest_level + && _Giant.owner_cpu != cpu_self ) + || ( disable_level > cpu_self->isr_nest_level + && _Giant.owner_cpu == cpu_self ) ); _Profiling_Thread_dispatch_enable( cpu_self, disable_level ); |