summaryrefslogtreecommitdiffstats
path: root/cpukit/libdrvmgr
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-04-24 15:23:39 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-04-24 15:23:39 +0200
commit905d7fa3a283d75969373783feeeff331157304e (patch)
tree6bb82bb1e877653369b2e950e9fd1a375d8922b8 /cpukit/libdrvmgr
parentbsps: Move arm-cp15-set-ttb-entries.c to bsps (diff)
downloadrtems-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')
-rw-r--r--cpukit/libdrvmgr/drvmgr_lock.c12
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 );
+ }
}