From 38c2147759d1b687a7330419a04a6c84d80b784a Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 6 Oct 2021 08:46:21 +0200 Subject: rtems: Set postponed jobs in rate-monotonic cancel Set the postponed jobs count to zero in rtems_rate_monotonic_cancel() so that rtems_rate_monotonic_get_status() returns a consistent status for inactive periods. Update #4511. --- cpukit/rtems/src/ratemoncancel.c | 1 + cpukit/rtems/src/ratemonperiod.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'cpukit/rtems/src') diff --git a/cpukit/rtems/src/ratemoncancel.c b/cpukit/rtems/src/ratemoncancel.c index 3d95c06fd7..ccc03942c6 100644 --- a/cpukit/rtems/src/ratemoncancel.c +++ b/cpukit/rtems/src/ratemoncancel.c @@ -35,6 +35,7 @@ void _Rate_monotonic_Cancel( _Rate_monotonic_Acquire_critical( the_period, lock_context ); _Watchdog_Per_CPU_remove_ticks( &the_period->Timer ); + the_period->postponed_jobs = 0; the_period->state = RATE_MONOTONIC_INACTIVE; _Scheduler_Cancel_job( the_period->owner, diff --git a/cpukit/rtems/src/ratemonperiod.c b/cpukit/rtems/src/ratemonperiod.c index 2c55eb089d..7f0d302583 100644 --- a/cpukit/rtems/src/ratemonperiod.c +++ b/cpukit/rtems/src/ratemonperiod.c @@ -217,7 +217,7 @@ static rtems_status_code _Rate_monotonic_Activate( ISR_lock_Context *lock_context ) { - the_period->postponed_jobs = 0; + _Assert( the_period->postponed_jobs == 0 ); the_period->state = RATE_MONOTONIC_ACTIVE; the_period->next_length = length; _Rate_monotonic_Restart( the_period, executing, lock_context ); -- cgit v1.2.3