Skip to content

Commit

Permalink
FRV: Don't make smp_{r, w, }mb() interpolate MEMBAR when CONFIG_SMP=n…
Browse files Browse the repository at this point in the history
… [try #2]

Don't make smp_{r,w,}mb() interpolate a MEMBAR instruction when CONFIG_SMP=n as
SMP memory barries on UP systems should interpolate a compiler barrier only.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
David Howells authored and Linus Torvalds committed Apr 10, 2008
1 parent ed9b949 commit f17520e
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions include/asm-frv/system.h
Original file line number Diff line number Diff line change
Expand Up @@ -179,14 +179,23 @@ do { \
#define mb() asm volatile ("membar" : : :"memory")
#define rmb() asm volatile ("membar" : : :"memory")
#define wmb() asm volatile ("membar" : : :"memory")
#define set_mb(var, value) do { var = value; mb(); } while (0)
#define read_barrier_depends() barrier()

#define smp_mb() mb()
#define smp_rmb() rmb()
#define smp_wmb() wmb()

#define read_barrier_depends() do {} while(0)
#ifdef CONFIG_SMP
#define smp_mb() mb()
#define smp_rmb() rmb()
#define smp_wmb() wmb()
#define smp_read_barrier_depends() read_barrier_depends()
#define set_mb(var, value) \
do { xchg(&var, (value)); } while (0)
#else
#define smp_mb() barrier()
#define smp_rmb() barrier()
#define smp_wmb() barrier()
#define smp_read_barrier_depends() do {} while(0)
#define set_mb(var, value) \
do { var = (value); barrier(); } while (0)
#endif

#define HARD_RESET_NOW() \
do { \
Expand Down

0 comments on commit f17520e

Please sign in to comment.