diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog index 962dcdd6f5..c961412d5b 100644 --- a/cpukit/ChangeLog +++ b/cpukit/ChangeLog @@ -1,3 +1,9 @@ +2011-08-02 Jennifer.Averett + + PR 1872 + * score/src/apimutexlock.c, score/src/apimutexunlock.c: Added smp + support to apimutex. + 2011-08-02 Petr Benes PR 1861/cpukit diff --git a/cpukit/score/src/apimutexlock.c b/cpukit/score/src/apimutexlock.c index 6729478ae4..b8e74064a2 100644 --- a/cpukit/score/src/apimutexlock.c +++ b/cpukit/score/src/apimutexlock.c @@ -22,6 +22,10 @@ void _API_Mutex_Lock( { ISR_Level level; + #if defined(RTEMS_SMP) + _Thread_Disable_dispatch(); + #endif + _ISR_Disable( level ); _CORE_mutex_Seize( diff --git a/cpukit/score/src/apimutexunlock.c b/cpukit/score/src/apimutexunlock.c index ca824a6e6c..7ebfb90946 100644 --- a/cpukit/score/src/apimutexunlock.c +++ b/cpukit/score/src/apimutexunlock.c @@ -20,7 +20,10 @@ void _API_Mutex_Unlock( API_Mutex_Control *the_mutex ) { - _Thread_Disable_dispatch(); + /* Dispatch is already disabled in SMP while lock is held. */ + #if !defined(RTEMS_SMP) + _Thread_Disable_dispatch(); + #endif _CORE_mutex_Surrender( &the_mutex->Mutex, the_mutex->Object.id,