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 | |
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
-rw-r--r-- | c/src/lib/libcpu/powerpc/ChangeLog | 5 | ||||
-rw-r--r-- | c/src/lib/libcpu/powerpc/mpc6xx/clock/c_clock.c | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/c/src/lib/libcpu/powerpc/ChangeLog b/c/src/lib/libcpu/powerpc/ChangeLog index 8121787325..3735ae2d95 100644 --- a/c/src/lib/libcpu/powerpc/ChangeLog +++ b/c/src/lib/libcpu/powerpc/ChangeLog @@ -1,3 +1,8 @@ +2005-11-03 straumanatslacdotstanford.edu + + * mpc6xx/clock/c_clock.c: disable interrupts around decrementer update + to eliminate a race condition + 2005-11-02 straumanatslacdotstanford.edu * mpc6xx/mmu/pte121.c, mpc6xx/mmu/pte121.h: enhancements to mpc6xx page 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; |