diff options
author | David Howells <dhowells@redhat.com> | 2012-03-28 18:30:03 +0100 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2012-03-28 18:30:03 +0100 |
commit | 885df91ca3571afd4b3f50f3391329bbf3c9e262 (patch) | |
tree | e66773beb0fb84fc4a43037ba829719b3cbabe47 /include/asm-generic/system.h | |
parent | 34484277b173d0af1bb00532a264940b57920429 (diff) |
Create asm-generic/barrier.h
Create asm-generic/barrier.h and move the barrier definitions from
asm-generic/system.h to it.
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'include/asm-generic/system.h')
-rw-r--r-- | include/asm-generic/system.h | 34 |
1 files changed, 1 insertions, 33 deletions
diff --git a/include/asm-generic/system.h b/include/asm-generic/system.h index 82cb53abb9f6..f98f693383c4 100644 --- a/include/asm-generic/system.h +++ b/include/asm-generic/system.h @@ -19,6 +19,7 @@ #include <linux/types.h> #include <linux/irqflags.h> +#include <asm/barrier.h> #include <asm/cmpxchg.h> struct task_struct; @@ -33,42 +34,9 @@ extern struct task_struct *__switch_to(struct task_struct *, #define arch_align_stack(x) (x) -#define nop() asm volatile ("nop") - -#endif /* !__ASSEMBLY__ */ - -/* - * Force strict CPU ordering. - * And yes, this is required on UP too when we're talking - * to devices. - * - * This implementation only contains a compiler barrier. - */ - -#define mb() asm volatile ("": : :"memory") -#define rmb() mb() -#define wmb() asm volatile ("": : :"memory") - -#ifdef CONFIG_SMP -#define smp_mb() mb() -#define smp_rmb() rmb() -#define smp_wmb() wmb() -#else -#define smp_mb() barrier() -#define smp_rmb() barrier() -#define smp_wmb() barrier() -#endif - -#define set_mb(var, value) do { var = value; mb(); } while (0) -#define set_wmb(var, value) do { var = value; wmb(); } while (0) - -#define read_barrier_depends() do {} while (0) -#define smp_read_barrier_depends() do {} while (0) - /* * we make sure local_irq_enable() doesn't cause priority inversion */ -#ifndef __ASSEMBLY__ /* This function doesn't exist, so you'll get a linker error * if something tries to do an invalid xchg(). */ |