aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-arm/system.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-arm/system.h')
-rw-r--r--include/asm-arm/system.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/include/asm-arm/system.h b/include/asm-arm/system.h
index 3d0d2860b6db..2f44b2044214 100644
--- a/include/asm-arm/system.h
+++ b/include/asm-arm/system.h
@@ -85,7 +85,9 @@ struct pt_regs;
85void die(const char *msg, struct pt_regs *regs, int err) 85void die(const char *msg, struct pt_regs *regs, int err)
86 __attribute__((noreturn)); 86 __attribute__((noreturn));
87 87
88void die_if_kernel(const char *str, struct pt_regs *regs, int err); 88struct siginfo;
89void notify_die(const char *str, struct pt_regs *regs, struct siginfo *info,
90 unsigned long err, unsigned long trap);
89 91
90void hook_fault_code(int nr, int (*fn)(unsigned long, unsigned int, 92void hook_fault_code(int nr, int (*fn)(unsigned long, unsigned int,
91 struct pt_regs *), 93 struct pt_regs *),
@@ -290,7 +292,6 @@ do { \
290}) 292})
291 293
292#ifdef CONFIG_SMP 294#ifdef CONFIG_SMP
293#error SMP not supported
294 295
295#define smp_mb() mb() 296#define smp_mb() mb()
296#define smp_rmb() rmb() 297#define smp_rmb() rmb()
@@ -304,6 +305,8 @@ do { \
304#define smp_wmb() barrier() 305#define smp_wmb() barrier()
305#define smp_read_barrier_depends() do { } while(0) 306#define smp_read_barrier_depends() do { } while(0)
306 307
308#endif /* CONFIG_SMP */
309
307#if defined(CONFIG_CPU_SA1100) || defined(CONFIG_CPU_SA110) 310#if defined(CONFIG_CPU_SA1100) || defined(CONFIG_CPU_SA110)
308/* 311/*
309 * On the StrongARM, "swp" is terminally broken since it bypasses the 312 * On the StrongARM, "swp" is terminally broken since it bypasses the
@@ -316,9 +319,16 @@ do { \
316 * 319 *
317 * We choose (1) since its the "easiest" to achieve here and is not 320 * We choose (1) since its the "easiest" to achieve here and is not
318 * dependent on the processor type. 321 * dependent on the processor type.
322 *
323 * NOTE that this solution won't work on an SMP system, so explcitly
324 * forbid it here.
319 */ 325 */
326#ifdef CONFIG_SMP
327#error SMP is not supported on SA1100/SA110
328#else
320#define swp_is_buggy 329#define swp_is_buggy
321#endif 330#endif
331#endif
322 332
323static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size) 333static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size)
324{ 334{
@@ -361,8 +371,6 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
361 return ret; 371 return ret;
362} 372}
363 373
364#endif /* CONFIG_SMP */
365
366#endif /* __ASSEMBLY__ */ 374#endif /* __ASSEMBLY__ */
367 375
368#define arch_align_stack(x) (x) 376#define arch_align_stack(x) (x)