diff options
Diffstat (limited to 'include/asm-frv/system.h')
-rw-r--r-- | include/asm-frv/system.h | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/include/asm-frv/system.h b/include/asm-frv/system.h index 2c57f4734746..30a67a9da11a 100644 --- a/include/asm-frv/system.h +++ b/include/asm-frv/system.h | |||
@@ -179,14 +179,23 @@ do { \ | |||
179 | #define mb() asm volatile ("membar" : : :"memory") | 179 | #define mb() asm volatile ("membar" : : :"memory") |
180 | #define rmb() asm volatile ("membar" : : :"memory") | 180 | #define rmb() asm volatile ("membar" : : :"memory") |
181 | #define wmb() asm volatile ("membar" : : :"memory") | 181 | #define wmb() asm volatile ("membar" : : :"memory") |
182 | #define set_mb(var, value) do { var = value; mb(); } while (0) | 182 | #define read_barrier_depends() barrier() |
183 | 183 | ||
184 | #define smp_mb() mb() | 184 | #ifdef CONFIG_SMP |
185 | #define smp_rmb() rmb() | 185 | #define smp_mb() mb() |
186 | #define smp_wmb() wmb() | 186 | #define smp_rmb() rmb() |
187 | 187 | #define smp_wmb() wmb() | |
188 | #define read_barrier_depends() do {} while(0) | ||
189 | #define smp_read_barrier_depends() read_barrier_depends() | 188 | #define smp_read_barrier_depends() read_barrier_depends() |
189 | #define set_mb(var, value) \ | ||
190 | do { xchg(&var, (value)); } while (0) | ||
191 | #else | ||
192 | #define smp_mb() barrier() | ||
193 | #define smp_rmb() barrier() | ||
194 | #define smp_wmb() barrier() | ||
195 | #define smp_read_barrier_depends() do {} while(0) | ||
196 | #define set_mb(var, value) \ | ||
197 | do { var = (value); barrier(); } while (0) | ||
198 | #endif | ||
190 | 199 | ||
191 | #define HARD_RESET_NOW() \ | 200 | #define HARD_RESET_NOW() \ |
192 | do { \ | 201 | do { \ |