On 25/01/17 15:48, Kuan-Hsun Chen wrote:
--- cpukit/rtems/src/ratemontimeout.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cpukit/rtems/src/ratemontimeout.c b/cpukit/rtems/src/ratemontimeout.c index bcc4ccf..079ad41 100644 --- a/cpukit/rtems/src/ratemontimeout.c +++ b/cpukit/rtems/src/ratemontimeout.c @@ -9,7 +9,7 @@ * COPYRIGHT (c) 1989-2009. * On-Line Applications Research Corporation (OAR). * - * COPYRIGHT (c) 2016 Kuan-Hsun Chen. + * COPYRIGHT (c) 2017 Kuan-Hsun Chen.
This should be 2016, 2017 or 2016-2017.
* * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at @@ -30,7 +30,10 @@ static void _Rate_monotonic_Renew_deadline( { uint64_t deadline; - ++the_period->postponed_jobs; + /** stay at 0xffffffff if postponed_jobs is going to overflow */
/** is a Doxygen comment.
+ if ( the_period->postponed_jobs != UINT_MAX ) { + ++the_period->postponed_jobs; + }
Type is uint32_t, not unsigned int. So, use UINT32_MAX. Maybe Empty lines between blocks.
the_period->state = RATE_MONOTONIC_EXPIRED; deadline = _Watchdog_Per_CPU_insert_relative(
We need a test case for this overflow condition. You probably have to modify the_period->postponed_jobs by hand in the test case to avoid extremely long test run times.
-- Sebastian Huber, embedded brains GmbH Address : Dornierstr. 4, D-82178 Puchheim, Germany Phone : +49 89 189 47 41-16 Fax : +49 89 189 47 41-09 E-Mail : sebastian.hu...@embedded-brains.de PGP : Public key available on request. Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG. _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel