summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/i386/rtems/score/cpusmplock.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-07-30 15:29:43 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-07-30 17:22:25 +0200
commit9e6df6adf3bc66cd0fe0500e6f153ecb6dc46454 (patch)
tree6c3d3f58be67c5276c373c97c3363e2d99be50de /cpukit/score/cpu/i386/rtems/score/cpusmplock.h
parentbsps/i386: Include missing header and fix warnings (diff)
downloadrtems-9e6df6adf3bc66cd0fe0500e6f153ecb6dc46454.tar.bz2
score/cpu: Fix _CPU_SMP_lock_Acquire()
Avoid infinite loops due to compiler optimization.
Diffstat (limited to '')
-rw-r--r--cpukit/score/cpu/i386/rtems/score/cpusmplock.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/cpukit/score/cpu/i386/rtems/score/cpusmplock.h b/cpukit/score/cpu/i386/rtems/score/cpusmplock.h
index 6fadfef419..f9d36e63fe 100644
--- a/cpukit/score/cpu/i386/rtems/score/cpusmplock.h
+++ b/cpukit/score/cpu/i386/rtems/score/cpusmplock.h
@@ -68,7 +68,7 @@ static inline void _CPU_SMP_lock_Acquire( CPU_SMP_lock_Control *lock )
{
do {
while ( lock->locked ) {
- /* Do nothing */
+ RTEMS_COMPILER_MEMORY_BARRIER();
}
} while ( _I386_Atomic_swap( &lock->locked, 1 ) );
}