summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-05-17 15:15:17 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-05-20 07:49:41 +0200
commitb80156cf15a9e080e8608a30e3e2795211c03f3e (patch)
treedc6ef5c7cf7de2921a43c6fa9aa3a36d25f946bd
parentscore: Delete unused _Objects_Get() (diff)
downloadrtems-b80156cf15a9e080e8608a30e3e2795211c03f3e.tar.bz2
score: Avoid Giant _Objects_Extend_information()
Avoid Giant lock for _Objects_Extend_information(). Update #2280. Update #2555.
-rw-r--r--cpukit/score/src/objectextendinformation.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/cpukit/score/src/objectextendinformation.c b/cpukit/score/src/objectextendinformation.c
index b1fcec7617..2a76114096 100644
--- a/cpukit/score/src/objectextendinformation.c
+++ b/cpukit/score/src/objectextendinformation.c
@@ -113,7 +113,7 @@ void _Objects_Extend_information(
* Do we need to grow the tables?
*/
if ( do_extend ) {
- ISR_Level level;
+ ISR_lock_Context lock_context;
void **object_blocks;
uint32_t *inactive_per_block;
Objects_Control **local_table;
@@ -225,8 +225,8 @@ void _Objects_Extend_information(
local_table[ index ] = NULL;
}
- _Thread_Disable_dispatch();
- _ISR_Disable( level );
+ /* FIXME: https://devel.rtems.org/ticket/2280 */
+ _ISR_lock_ISR_disable( &lock_context );
old_tables = information->object_blocks;
@@ -241,8 +241,7 @@ void _Objects_Extend_information(
information->maximum
);
- _ISR_Enable( level );
- _Thread_Enable_dispatch();
+ _ISR_lock_ISR_enable( &lock_context );
_Workspace_Free( old_tables );