summaryrefslogtreecommitdiffstats
path: root/cpukit
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-12-03 11:56:55 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-12-03 12:58:47 +0100
commitb4e83061e3ebd3dd012c4b41cc04daf3043a1ce0 (patch)
tree108b8c19a99b776ef8377f105911090569aeb6cd /cpukit
parentbsps/powerpc: Unconditionally clear reservations (diff)
downloadrtems-b4e83061e3ebd3dd012c4b41cc04daf3043a1ce0.tar.bz2
arm: Clear reservations
Recent GCC versions use atomic operations based on load/store exclusive in the C++ library.
Diffstat (limited to 'cpukit')
-rw-r--r--cpukit/score/cpu/arm/cpu_asm.S2
-rw-r--r--cpukit/score/cpu/arm/rtems/score/arm.h1
2 files changed, 2 insertions, 1 deletions
diff --git a/cpukit/score/cpu/arm/cpu_asm.S b/cpukit/score/cpu/arm/cpu_asm.S
index 0a91836fe5..7fb4062d50 100644
--- a/cpukit/score/cpu/arm/cpu_asm.S
+++ b/cpukit/score/cpu/arm/cpu_asm.S
@@ -64,7 +64,7 @@ DEFINE_FUNCTION_ARM(_CPU_Context_switch)
/* Start restoring context */
_restore:
-#ifdef RTEMS_SMP
+#ifdef ARM_MULTILIB_HAS_LOAD_STORE_EXCLUSIVE
clrex
#endif
diff --git a/cpukit/score/cpu/arm/rtems/score/arm.h b/cpukit/score/cpu/arm/rtems/score/arm.h
index 0a3e7247f8..608f753d11 100644
--- a/cpukit/score/cpu/arm/rtems/score/arm.h
+++ b/cpukit/score/cpu/arm/rtems/score/arm.h
@@ -41,6 +41,7 @@ extern "C" {
|| defined(__ARM_ARCH_7R__) \
|| defined(__ARM_ARCH_7M__)
#define ARM_MULTILIB_HAS_WFI
+ #define ARM_MULTILIB_HAS_LOAD_STORE_EXCLUSIVE
#endif
#if defined(__ARM_NEON__)