#4676: incorrect handling of "inactive_per_block" from "Objects_Information" structure -------------------------------------------------+------------------------- Reporter: Adrian Varlan | Owner: Sebastian | Huber Type: defect | Status: accepted Priority: normal | Milestone: 5.2 Component: score | Version: 5 Severity: normal | Resolution: Keywords: CONFIGURE_UNLIMITED_OBJECTS | Blocked By: inactive_per_block | Blocking: | -------------------------------------------------+------------------------- Changes (by Sebastian Huber):
* owner: (none) => Sebastian Huber * status: new => accepted Comment: Thanks for the detailed bug report. Do you would like to add a test case for this? If not, then I can do it. I think the bug was introduced by: {{{ commit 21275b58a5a69c3c838082ffc8a7a3641f32ea9a Author: Sebastian Huber <sebastian.hu...@embedded-brains.de> Date: Thu Nov 22 19:14:51 2018 +0100 score: Static Objects_Information initialization Statically allocate the objects information together with the initial set of objects either via <rtems/confdefs.h>. Provide default object informations with zero objects via librtemscpu.a. This greatly simplifies the workspace size estimate. RTEMS applications which do not use the unlimited objects option are easier to debug since all objects reside now in statically allocated objects of the right types. Close #3621. diff --git a/cpukit/score/src/objectallocate.c b/cpukit/score/src/objectallocate.c index 9213cf8eb7..ad73884a07 100644 --- a/cpukit/score/src/objectallocate.c +++ b/cpukit/score/src/objectallocate.c @@ -68,13 +68,18 @@ Objects_Control *_Objects_Allocate_unprotected( } if ( the_object != NULL ) { + Objects_Maximum objects_per_block; Objects_Maximum block; + objects_per_block = information->objects_per_block; block = _Objects_Get_index( the_object->id ) - OBJECTS_INDEX_MINIMUM; - block /= information->objects_per_block; - information->inactive_per_block[ block ]--; - information->inactive--; + if ( block > objects_per_block ) { + block /= objects_per_block; + + information->inactive_per_block[ block ]--; + information->inactive--; + } } } }}} -- Ticket URL: <http://devel.rtems.org/ticket/4676#comment:1> RTEMS Project <http://www.rtems.org/> RTEMS Project
_______________________________________________ bugs mailing list bugs@rtems.org http://lists.rtems.org/mailman/listinfo/bugs