diff options
author | Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> | 2008-02-07 09:16:18 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-07 17:42:32 +0100 |
commit | f94d1d3a1df125461a16b2888eca46d64f113e3a (patch) | |
tree | 35991d4f2f00dd9f3df1fe5d0ca53b5e01545f67 | |
parent | New cmpxchg_local (optimized for UP case) for m32r (diff) | |
download | linux-f94d1d3a1df125461a16b2888eca46d64f113e3a.tar.xz linux-f94d1d3a1df125461a16b2888eca46d64f113e3a.zip |
Fix m32r __xchg
the #endif /* CONFIG_SMP */ should cover the default condition, or it may cause
bad parameter to be silently missed.
To make it work correctly, we have to remove the ifdef CONFIG SMP surrounding
__xchg_called_with_bad_pointer declaration. Thanks to Adrian Bunk for detecting
this.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Acked-by: Hirokazu Takata <takata@linux-m32r.org>
Cc: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | include/asm-m32r/system.h | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/include/asm-m32r/system.h b/include/asm-m32r/system.h index 7e7eb3703d85..70a57c8c002b 100644 --- a/include/asm-m32r/system.h +++ b/include/asm-m32r/system.h @@ -127,9 +127,7 @@ static inline void local_irq_disable(void) ((__typeof__(*(ptr)))__xchg_local((unsigned long)(x), (ptr), \ sizeof(*(ptr)))) -#ifdef CONFIG_SMP extern void __xchg_called_with_bad_pointer(void); -#endif #ifdef CONFIG_CHIP_M32700_TS1 #define DCACHE_CLEAR(reg0, reg1, addr) \ @@ -189,9 +187,9 @@ __xchg(unsigned long x, volatile void *ptr, int size) #endif /* CONFIG_CHIP_M32700_TS1 */ ); break; +#endif /* CONFIG_SMP */ default: __xchg_called_with_bad_pointer(); -#endif /* CONFIG_SMP */ } local_irq_restore(flags); |