diff options
author | Till Straumann <strauman@slac.stanford.edu> | 2005-11-03 18:35:07 +0000 |
---|---|---|
committer | Till Straumann <strauman@slac.stanford.edu> | 2005-11-03 18:35:07 +0000 |
commit | cc9073d19bd8ece2f556e8af8f0b89b278e9efb6 (patch) | |
tree | 6fdb6aca562b97ff46bd8eb19456d1bfd063d819 /c/src/lib/libcpu/powerpc/mpc6xx/clock/c_clock.c | |
parent | 2005-11-03 Ralf Corsepius <ralf.corsepius@rtems.org> (diff) | |
download | rtems-cc9073d19bd8ece2f556e8af8f0b89b278e9efb6.tar.bz2 |
2005-11-03 straumanatslacdotstanford.edu
* mpc6xx/clock/c_clock.c: disable interrupts around decrementer update
to eliminate a race condition
Diffstat (limited to 'c/src/lib/libcpu/powerpc/mpc6xx/clock/c_clock.c')
-rw-r--r-- | c/src/lib/libcpu/powerpc/mpc6xx/clock/c_clock.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/c/src/lib/libcpu/powerpc/mpc6xx/clock/c_clock.c b/c/src/lib/libcpu/powerpc/mpc6xx/clock/c_clock.c index 7bdc1f7fe9..fd69920071 100644 --- a/c/src/lib/libcpu/powerpc/mpc6xx/clock/c_clock.c +++ b/c/src/lib/libcpu/powerpc/mpc6xx/clock/c_clock.c @@ -81,7 +81,10 @@ int decr; * The driver has seen another tick. */ do { + register uint32_t flags; + rtems_interrupt_disable(flags); asm volatile ("mfdec %0; add %0, %0, %1; mtdec %0":"=&r"(decr):"r"(Clock_Decrementer_value)); + rtems_interrupt_enable(flags); Clock_driver_ticks += 1; |