diff options
Diffstat (limited to 'include/asm-arm/system.h')
-rw-r--r-- | include/asm-arm/system.h | 16 |
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; | |||
85 | void die(const char *msg, struct pt_regs *regs, int err) | 85 | void die(const char *msg, struct pt_regs *regs, int err) |
86 | __attribute__((noreturn)); | 86 | __attribute__((noreturn)); |
87 | 87 | ||
88 | void die_if_kernel(const char *str, struct pt_regs *regs, int err); | 88 | struct siginfo; |
89 | void notify_die(const char *str, struct pt_regs *regs, struct siginfo *info, | ||
90 | unsigned long err, unsigned long trap); | ||
89 | 91 | ||
90 | void hook_fault_code(int nr, int (*fn)(unsigned long, unsigned int, | 92 | void 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 | ||
323 | static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size) | 333 | static 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) |