From fbbe5fde57bdc9d0c7f809931c2addb43bc1bd42 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 18 Jul 2003 14:47:55 +0000 Subject: 2003-07-18 Till Straumann PR 430/rtems * include/rtems/score/watchdog.h: _Watchdog_Ticks_since_boot should be a VOLATILE variable. * src/watchdoginsert.c: 'restart' algorithm needs to enforce reloading the list head in case a TICK interrupt during ISR_Flash() modified the list. This is achieved by a proper VOLATILE cast. Also _Watchdog_Sync_count++ should be protected by _ISR_Disable (prevent corruption in case ISR calls watchdoginsert) * src/watchdogadjust.c: ISR protection added. * src/watchdogtickle.c: ISR protection added. NOTE: PowerPC BSPs using the new exception processing MUST BE UPDATED to maintain _ISR_Nest_level. See also PR288 which provides fixes for the affected BSPs distributed with RTEMS. --- cpukit/score/include/rtems/score/watchdog.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'cpukit/score/include') diff --git a/cpukit/score/include/rtems/score/watchdog.h b/cpukit/score/include/rtems/score/watchdog.h index f24c7a1a69..0a9f033200 100644 --- a/cpukit/score/include/rtems/score/watchdog.h +++ b/cpukit/score/include/rtems/score/watchdog.h @@ -103,7 +103,7 @@ SCORE_EXTERN volatile unsigned32 _Watchdog_Sync_count; * system was booted. */ -SCORE_EXTERN Watchdog_Interval _Watchdog_Ticks_since_boot; +SCORE_EXTERN volatile Watchdog_Interval _Watchdog_Ticks_since_boot; /* * The following defines the watchdog chains which are managed -- cgit v1.2.3