diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-03-22 07:58:41 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-03-22 08:05:28 +0100 |
commit | 865f110b58d944db72a71296fe3f15a4b8de097a (patch) | |
tree | c391b5473df06c6bae58bd0257edf27a28aa4be5 /cpukit/score/src/userextaddset.c | |
parent | score: Always declare _Objects_Get_by_name() (diff) | |
download | rtems-865f110b58d944db72a71296fe3f15a4b8de097a.tar.bz2 |
score: Fix for RTEMS_DEBUG
The rtems_extension_create() no longer uses the Giant lock. Ensure that
we call _User_extensions_Add_set() only in the right context.
Update #2555.
Diffstat (limited to 'cpukit/score/src/userextaddset.c')
-rw-r--r-- | cpukit/score/src/userextaddset.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/cpukit/score/src/userextaddset.c b/cpukit/score/src/userextaddset.c index a55dd8cedc..f34ad0072f 100644 --- a/cpukit/score/src/userextaddset.c +++ b/cpukit/score/src/userextaddset.c @@ -20,13 +20,20 @@ #endif #include <rtems/score/userextimpl.h> +#include <rtems/score/objectimpl.h> #include <rtems/score/percpu.h> +#include <rtems/score/sysstate.h> void _User_extensions_Add_set( User_extensions_Control *the_extension ) { - _Chain_Append( &_User_extensions_List, &the_extension->Node ); + _Assert( + _Objects_Allocator_is_owner() + || _System_state_Is_before_multitasking( _System_state_Get() ) + ); + + _Chain_Append_unprotected( &_User_extensions_List, &the_extension->Node ); /* * If a switch handler is present, append it to the switch chain. |