aboutsummaryrefslogtreecommitdiff
path: root/include/asm-arm/system.h
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@pobox.com>2005-06-30 00:49:38 -0400
committerJeff Garzik <jgarzik@pobox.com>2005-06-30 00:49:38 -0400
commite9dd2561793c05d70c9df1bc16a2dde6f23388df (patch)
tree20099972569cc0748133a6351600fff9cbb15f4a /include/asm-arm/system.h
parentd011e151bc5d1a581bf35b492a4fde44d30382b9 (diff)
parent0c168775709faa74c1b87f1e61046e0c51ade7f3 (diff)
Merge /spare/repo/netdev-2.6 branch 'ieee80211'
Diffstat (limited to 'include/asm-arm/system.h')
-rw-r--r--include/asm-arm/system.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/include/asm-arm/system.h b/include/asm-arm/system.h
index 3d0d2860b6d..cdf49f442fd 100644
--- a/include/asm-arm/system.h
+++ b/include/asm-arm/system.h
@@ -290,7 +290,6 @@ do { \
})
#ifdef CONFIG_SMP
-#error SMP not supported
#define smp_mb() mb()
#define smp_rmb() rmb()
@@ -304,6 +303,8 @@ do { \
#define smp_wmb() barrier()
#define smp_read_barrier_depends() do { } while(0)
+#endif /* CONFIG_SMP */
+
#if defined(CONFIG_CPU_SA1100) || defined(CONFIG_CPU_SA110)
/*
* On the StrongARM, "swp" is terminally broken since it bypasses the
@@ -316,9 +317,16 @@ do { \
*
* We choose (1) since its the "easiest" to achieve here and is not
* dependent on the processor type.
+ *
+ * NOTE that this solution won't work on an SMP system, so explcitly
+ * forbid it here.
*/
+#ifdef CONFIG_SMP
+#error SMP is not supported on SA1100/SA110
+#else
#define swp_is_buggy
#endif
+#endif
static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size)
{
@@ -361,8 +369,6 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
return ret;
}
-#endif /* CONFIG_SMP */
-
#endif /* __ASSEMBLY__ */
#define arch_align_stack(x) (x)