diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-04-24 15:23:39 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-04-24 15:23:39 +0200 |
commit | 905d7fa3a283d75969373783feeeff331157304e (patch) | |
tree | 6bb82bb1e877653369b2e950e9fd1a375d8922b8 /cpukit/libdrvmgr/drvmgr_lock.c | |
parent | bsps: Move arm-cp15-set-ttb-entries.c to bsps (diff) | |
download | rtems-905d7fa3a283d75969373783feeeff331157304e.tar.bz2 |
drvmgr: Use API mutex usage
The driver manager lock may be used before the executing thread is
initialized.
Diffstat (limited to 'cpukit/libdrvmgr/drvmgr_lock.c')
-rw-r--r-- | cpukit/libdrvmgr/drvmgr_lock.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/cpukit/libdrvmgr/drvmgr_lock.c b/cpukit/libdrvmgr/drvmgr_lock.c index c7a1104eef..23cdb137e6 100644 --- a/cpukit/libdrvmgr/drvmgr_lock.c +++ b/cpukit/libdrvmgr/drvmgr_lock.c @@ -7,16 +7,20 @@ * http://www.rtems.org/license/LICENSE. */ -#include <rtems.h> #include <drvmgr/drvmgr.h> #include "drvmgr_internal.h" +#include <rtems/score/sysstate.h> -void _DRV_Manager_Lock(void) +void _DRV_Manager_Lock( void ) { - _API_Mutex_Lock(&drvmgr.lock); + if ( !_System_state_Is_before_multitasking( _System_state_Get() ) ) { + _API_Mutex_Lock( &drvmgr.lock ); + } } void _DRV_Manager_Unlock(void) { - _API_Mutex_Unlock(&drvmgr.lock); + if ( !_System_state_Is_before_multitasking( _System_state_Get() ) ) { + _API_Mutex_Unlock( &drvmgr.lock ); + } } |